Browse Source

opt:优化单据管理

feature/forewarning_management
龚宝雄 1 month ago
parent
commit
ee13e05c63
  1. 33
      nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/handler/IsoToLocalDateTimeStringDeserializer.java
  2. 20
      nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/PageQuery.java
  3. 13
      nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/DateUtil.java
  4. 18
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/controller/PmFormDataController.java
  5. 8
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java
  6. 11
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/dao/PmFormData.java
  7. 11
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/dto/PmFormDataParam.java
  8. 14
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml
  9. 3
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/FormDataQuery.java
  10. 153
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java
  11. 84
      nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java
  12. 60
      nladmin-ui/src/views/wms/pm_manage/form_data/index.vue

33
nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/handler/IsoToLocalDateTimeStringDeserializer.java

@ -0,0 +1,33 @@
package org.nl.common.domain.handler;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
/**
* 时区转换
*
* @author gbx
* @since 2025-06-27
*/
public class IsoToLocalDateTimeStringDeserializer extends JsonDeserializer<String> {
private static final DateTimeFormatter FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.of("Asia/Shanghai"));
@Override
public String deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException {
String isoString = p.getText();
try {
Instant instant = Instant.parse(isoString);
return FORMATTER.format(instant);
} catch (Exception e) {
return isoString;
}
}
}

20
nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/PageQuery.java

@ -74,6 +74,26 @@ public class PageQuery implements Serializable {
return page; return page;
} }
public static void trimStringFields(Object obj) {
if (obj == null) {
return;
}
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
if (field.getType() == String.class) {
field.setAccessible(true);
try {
String value = (String) field.get(obj);
if (value != null) {
field.set(obj, value.trim().toUpperCase());
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
public <R, T> Page<T> build(Class<R> r) { public <R, T> Page<T> build(Class<R> r) {
Integer pageNum = ObjectUtil.defaultIfNull(getPage(), DEFAULT_PAGE_NUM); Integer pageNum = ObjectUtil.defaultIfNull(getPage(), DEFAULT_PAGE_NUM);
Integer pageSize = ObjectUtil.defaultIfNull(getSize(), DEFAULT_PAGE_SIZE); Integer pageSize = ObjectUtil.defaultIfNull(getSize(), DEFAULT_PAGE_SIZE);

13
nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/DateUtil.java

@ -157,4 +157,17 @@ public class DateUtil {
public static LocalDateTime parseLocalDateTimeFormatyMdHms(String localDateTime) { public static LocalDateTime parseLocalDateTimeFormatyMdHms(String localDateTime) {
return LocalDateTime.from(DFY_MD_HMS.parse(localDateTime)); return LocalDateTime.from(DFY_MD_HMS.parse(localDateTime));
} }
/**
* 字符串转 yyyy-MM-dd
*
* @param localDateTime /
* @return /
*/
public static String parseLocalDateTimeFormatYmd(String localDateTime) {
if (localDateTime == null || localDateTime.length() < 10) {
return localDateTime;
}
return localDateTime.substring(0, 10);
}
} }

18
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/controller/PmFormDataController.java

@ -2,16 +2,21 @@ package org.nl.wms.pm_manage.form_data.controller;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.nl.common.base.TableDataInfo; import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.logging.annotation.Log; import org.nl.common.logging.annotation.Log;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
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.IPmFormDataService;
import org.nl.wms.pm_manage.form_data.service.dao.dao.PmFormData; import org.nl.wms.pm_manage.form_data.service.dao.dao.PmFormData;
import org.nl.wms.pm_manage.form_data.service.dao.dto.PmFormDataParam; import org.nl.wms.pm_manage.form_data.service.dao.dto.PmFormDataParam;
@ -67,17 +72,8 @@ public class PmFormDataController {
@PutMapping() @PutMapping()
@Log("修改单据结构") @Log("修改单据结构")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResponseEntity<Object> update(@RequestBody JSONObject param) { public ResponseEntity<Object> update(@RequestBody PmFormDataParam params) {
//逻辑判断:如果有数据了则不允许修改 iPmFormDataService.update(params);
String s = param.toString(SerializerFeature.SortField);
PmFormData pmFormData = JSONObject.parseObject(s, PmFormData.class, Feature.OrderedField);
//生产入库单存在报工数超过合格数,需要人工修改正确报工数=合格数,进行手动回传
String id = pmFormData.getId();
PmFormData entity = iPmFormDataService.getById(id);
entity.setRemark(pmFormData.getRemark());
entity.setUpdate_name(SecurityUtils.getCurrentUserId());
entity.setUpdate_time(DateUtil.now());
iPmFormDataService.updateById(entity);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }

8
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java

@ -29,6 +29,14 @@ public interface IPmFormDataService extends IService<PmFormData> {
*/ */
void create(PmFormDataParam params); void create(PmFormDataParam params);
/**
* 编辑
* @param params 对象实体
*/
void update(PmFormDataParam params);
List<PmFormData> getByType(String from_type); List<PmFormData> getByType(String from_type);
Object queryAll(FormDataQuery query, PageQuery page); Object queryAll(FormDataQuery query, PageQuery page);

11
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/dao/PmFormData.java

@ -2,8 +2,10 @@ package org.nl.wms.pm_manage.form_data.service.dao.dao;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.nl.common.domain.handler.IsoToLocalDateTimeStringDeserializer;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -29,7 +31,14 @@ public class PmFormData extends Model<PmFormData> {
*/ */
@TableId(value = "id", type = IdType.NONE) @TableId(value = "id", type = IdType.NONE)
private String id; private String id;
/**
* 仓库编号
*/
private String stor_id;
/**
* 仓库信息
*/
private String stor_name;
/** /**
* 编号 * 编号

11
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/dto/PmFormDataParam.java

@ -1,7 +1,9 @@
package org.nl.wms.pm_manage.form_data.service.dao.dto; package org.nl.wms.pm_manage.form_data.service.dao.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.*; import lombok.*;
import org.nl.common.domain.handler.IsoToLocalDateTimeStringDeserializer;
import org.nl.common.domain.query.BaseQuery; import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.pm_manage.form_data.service.dao.dao.PmFormData; import org.nl.wms.pm_manage.form_data.service.dao.dao.PmFormData;
@ -32,6 +34,14 @@ public class PmFormDataParam extends BaseQuery<PmFormData> {
* 单据状态 * 单据状态
*/ */
private String status; private String status;
/**
* 仓库编号
*/
private String stor_id;
/**
* 仓库信息
*/
private String stor_name;
/** /**
* 单据类型 * 单据类型
*/ */
@ -39,6 +49,7 @@ public class PmFormDataParam extends BaseQuery<PmFormData> {
/** /**
* 源单单据日期 * 源单单据日期
*/ */
@JsonDeserialize(using = IsoToLocalDateTimeStringDeserializer.class)
private String source_form_date; private String source_form_date;
/** /**
* 物料code * 物料code

14
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml

@ -15,6 +15,8 @@
<result property="assign_qty" column="assign_qty"/> <result property="assign_qty" column="assign_qty"/>
<result property="actual_qty" column="actual_qty"/> <result property="actual_qty" column="actual_qty"/>
<result property="total_qty" column="total_qty"/> <result property="total_qty" column="total_qty"/>
<result property="stor_id" column="stor_id"/>
<result property="stor_name" column="stor_name"/>
<result property="unit_id" column="unit_id"/> <result property="unit_id" column="unit_id"/>
<result property="unit_name" column="unit_name"/> <result property="unit_name" column="unit_name"/>
<result property="vehicle_code" column="vehicle_code"/> <result property="vehicle_code" column="vehicle_code"/>
@ -128,17 +130,15 @@
<if test="query.code != null and query.code != ''"> <if test="query.code != null and query.code != ''">
and code LIKE '%${query.code}' and code LIKE '%${query.code}'
</if> </if>
<if test="query.bill_code != null and query.bill_code != ''"> <if test="query.material_code != null and query.material_code != ''">
and source_form_date = #{query.bill_code} and (md_me_materialbase.material_code LIKE '%${query.material_code}%'
</if> or md_me_materialbase.material_name LIKE '%${query.material_code}%')
<if test="query.mater != null and query.mater != ''">
and md_me_materialbase.material_code like '%${query.mater}%'
</if> </if>
<if test="query.start_time != null and query.start_time != ''"> <if test="query.start_time != null and query.start_time != ''">
and pm_form_data.create_time >= #{query.start_time} and pm_form_data.source_form_date >= #{query.start_time}
</if> </if>
<if test="query.end_time != null and query.end_time != ''"> <if test="query.end_time != null and query.end_time != ''">
and #{query.end_time} >= pm_form_data.create_time and #{query.end_time} >= pm_form_data.source_form_date
</if> </if>
<if test="query.status != null and query.status != ''"> <if test="query.status != null and query.status != ''">
and pm_form_data.status IN and pm_form_data.status IN

3
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/FormDataQuery.java

@ -21,11 +21,10 @@ public class FormDataQuery extends BaseQuery<PmFormData> {
private String search; private String search;
private String pcsn; private String pcsn;
private String parent_id; private String parent_id;
private String mater; private String material_code;
private String[] status; private String[] status;
private String start_time; private String start_time;
private String end_time; private String end_time;
private Map<String,String> form_query; private Map<String,String> form_query;
@Override @Override

153
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java

@ -18,170 +18,121 @@ import java.util.List;
@Data @Data
public class PmFormDataDto implements Serializable { public class PmFormDataDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 业务单据单据id
*/
private String id;
/**
* 单据编码
*/
private String code;
/**
* 对应流程实例id
*/
private String proc_inst_id;
private static final long serialVersionUID = -7739291296662381396L;
/** /**
* 业务单据编号 * 主键
*/ */
private String source_form_id; private String id;
/** /**
* 业务单据编号 * 编号
*/ */
private String source_form_type; private String code;
/** /**
* 业务单据日期 * 单据状态
*/ */
private String source_form_date; private String status;
/** /**
* 单据类型 * 单据类型
*/ */
private String form_type; private String form_type;
/**
* 业务单据状态
*/
private String status;
/**
* 业务单据状态
*/
private String bill_status;
/** /**
* 物料状态 * 源单单据日期
*/ */
private String material_status; private String source_form_date;
/**
* 业务单据状态
*/
private String remark;
/**
* 创建id
*/
private String create_time;
/**
* 创建id
*/
private String create_name;
/**
* 物料id
*/
private String material_id;
/**
* 物料name
*/
private String material_name;
/** /**
* 物料code * 物料code
*/ */
private String material_code; private String material_code;
/** /**
* 物料spec * 物料规格
*/ */
private String material_spec; private String material_spec;
/** /**
* 物料单重 * 物料
*/ */
private String net_weight; private String material_name;
/**
* 单据编号
*/
private String billNo;
/** /**
* 源单编号 * 净重
*/ */
private String srcBillNo; private String net_weight;
/** /**
* 条码 * 批次号
*/
private String bar_code;
/**
* 数量
*/
private BigDecimal qty;
/**
* 冻结数量
*/ */
private BigDecimal frozen_qty; private String pcsn;
/** /**
* 库存数量 * 计划数量
*/ */
private BigDecimal sto_qty; private BigDecimal plan_qty;
/** /**
* 数量 * 数量
*/ */
private BigDecimal plan_qty; private BigDecimal qty;
/** /**
* 分配数量 * 分配数量
*/ */
private BigDecimal assign_qty; private BigDecimal assign_qty;
/** /**
* 实际数量 * 实际数量
*/ */
private BigDecimal actual_qty; private BigDecimal actual_qty;
/** /**
* 单位 * 单据累计数量
*/
private BigDecimal total_qty;
/**
* 数量单位
*/ */
private String unit_id; private String unit_id;
/** /**
* 单位名称 * 单位名称
*/ */
private String unit_name; private String unit_name;
/**
* 载具信息
*/
private String vehicle_code;
/** /**
* 批次号 * 仓库
*/ */
private String pcsn; private String stor_name;
/** /**
* 批次号 * 载具组盘id
*/ */
private String product_area; private String vehicle_id;
/** /**
* 是否删除 * 自定义表单字段
*/ */
private String is_delete; private String form_data;
/** /**
* 载具 * 创建id
*/ */
private String vehicle_code; private String create_time;
/** /**
* 载具组盘id * 创建id
*/ */
private String vehicle_id; private String create_name;
/** /**
* 出库单据号 * 修改时间
*/ */
private String prd_ppbom_no; private String update_time;
/** /**
* 自定义表单字段 * 修改人
*/ */
private JSONObject form_data; private String update_name;
/**
* 说明
*/
private String remark;
/**
* 是否完结
*/
private Integer is_finish;
/** /**
* 关联上级表单id * 关联上级表单id

84
nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java

@ -2,6 +2,7 @@ package org.nl.wms.pm_manage.form_data.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; 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.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page; 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.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.CopyUtil; import org.nl.common.utils.CopyUtil;
import org.nl.common.utils.IdUtil; import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
import org.nl.wms.basedata_manage.service.IStructattrService; 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.IPmFormDataService;
import org.nl.wms.pm_manage.form_data.service.dao.dao.PmFormData; import org.nl.wms.pm_manage.form_data.service.dao.dao.PmFormData;
import org.nl.wms.pm_manage.form_data.service.dao.dto.PmFormDataParam; 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.FormDataQuery;
import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto; import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -36,6 +39,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.nl.common.domain.query.PageQuery.trimStringFields;
/** /**
* <p> * <p>
* 表单信息表 服务实现类 * 表单信息表 服务实现类
@ -57,15 +62,13 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormData> implements IPmFormDataService { public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormData> implements IPmFormDataService {
@Autowired
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
@Resource @Resource
private PmFormDataMapper pmFormDataMapper; private PmFormDataMapper pmFormDataMapper;
@Autowired @Resource
private IStructattrService iStIvtStructattrService; private IMdPbMeasureunitService iMdPbMeasureunitService;
@Resource
private IBsrealStorattrService iBsrealStorattrService;
@Override @Override
public Integer syncFormData(String form_type, String dataString) { public Integer syncFormData(String form_type, String dataString) {
@ -82,12 +85,43 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
*/ */
@Override @Override
public void create(PmFormDataParam params) { 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 @Override
public Object queryAll(FormDataQuery query, PageQuery pageQuery) { public Object queryAll(FormDataQuery query, PageQuery pageQuery) {
@ -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) { public com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> queryTree(FormDataQuery query, PageQuery pageQuery) {
Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
page.setOrderBy("id DESC"); page.setOrderBy("id DESC");
if (ObjectUtil.isNotEmpty(query.getMater()) || ObjectUtil.isNotEmpty(query.getPcsn()) || ObjectUtil.isNotEmpty(query.getBill_code())) { trimStringFields(query);
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());
}
}
List<PmFormDataDto> pmFormDataList = this.baseMapper.queryTree2(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()); 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); dtoPage.setRecords(pmFormDataList);
return dtoPage; return dtoPage;
@ -150,13 +171,9 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
if (!CollectionUtils.isEmpty(childs)) { if (!CollectionUtils.isEmpty(childs)) {
Map<String, List<PmFormDataDto>> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id)); Map<String, List<PmFormDataDto>> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id));
for (PmFormDataDto dataDto : pmFormDataDtos) { for (PmFormDataDto dataDto : pmFormDataDtos) {
String productArea = dataDto.getForm_data().getString("product_area");
dataDto.setProduct_area(productArea);
List<PmFormDataDto> children = childMap.get(dataDto.getId()); List<PmFormDataDto> children = childMap.get(dataDto.getId());
if (children != null) { if (children != null) {
for (PmFormDataDto child : children) { 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) { 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())); 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); child.setQty(total.compareTo(BigDecimal.ZERO) > 0 ? total : BigDecimal.ZERO);
@ -165,13 +182,6 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
} }
dataDto.setChildren(children); 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);
}
}
} }
} }

60
nladmin-ui/src/views/wms/pm_manage/form_data/index.vue

@ -13,8 +13,9 @@
> >
<el-form-item label="单据类型"> <el-form-item label="单据类型">
<el-select <el-select
v-model="query.bill_type" v-model="query.form_type"
filterable filterable
clearable
size="mini" size="mini"
placeholder="请选择/搜索" placeholder="请选择/搜索"
class="filter-item" class="filter-item"
@ -59,7 +60,7 @@
</el-form-item> </el-form-item>
<el-form-item label="物料编码"> <el-form-item label="物料编码">
<el-input <el-input
v-model="query.mater" v-model="query.material_code"
clearable clearable
style="width: 250px" style="width: 250px"
size="mini" size="mini"
@ -202,6 +203,9 @@
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label> <label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
<el-input v-model.trim="form.remark" style="width: 480px;" rows="2" type="textarea" :disabled="crud.status.view > 0" /> <el-input v-model.trim="form.remark" style="width: 480px;" rows="2" type="textarea" :disabled="crud.status.view > 0" />
</el-form-item> </el-form-item>
<el-form-item v-if="false" label="单位" prop="unit_id">
<el-input v-model="form.unit_id" style="width: 240px;" />
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button> <el-button type="text" @click="crud.cancelCU">取消</el-button>
@ -227,7 +231,15 @@
<span v-else>{{ scope.row.code }}</span> <span v-else>{{ scope.row.code }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="form_type" label="单据类型" show-overflow-tooltip width="120" /> <el-table-column show-overflow-tooltip prop="form_type" min-width="120" :formatter="bill_typeFormat" label="单据类型" />
<el-table-column show-overflow-tooltip prop="stor_name" min-width="120" label="仓库" />
<el-table-column prop="qty" label="物料数量" show-overflow-tooltip />
<el-table-column prop="material_code" label="物料编码" show-overflow-tooltip :min-width="flexWidth('material_code',crud.data,'物料编码')" />
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip :min-width="flexWidth('material_name',crud.data,'物料名称')" />
<el-table-column prop="material_spec" label="物料规格" show-overflow-tooltip :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
<el-table-column prop="pcsn" label="批次" show-overflow-tooltip width="120" />
<el-table-column prop="unit_name" label="单位" show-overflow-tooltip width="120" />
<el-table-column prop="source_form_date" label="源单日期" show-overflow-tooltip width="120" />
<el-table-column prop="status" label="单据状态" show-overflow-tooltip width="120"> <el-table-column prop="status" label="单据状态" show-overflow-tooltip width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-for="item in formStatus"> <template v-for="item in formStatus">
@ -235,27 +247,11 @@
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="vehicle_code" label="载具编号" show-overflow-tooltip width="120" />--> <el-table-column prop="actual_qty" label="明细实际数量" show-overflow-tooltip width="120" />
<el-table-column prop="qty" label="物料数量" show-overflow-tooltip /> <el-table-column prop="total_qty" label="单据累计数量" show-overflow-tooltip width="130" />
<el-table-column prop="material_id" label="物料id" show-overflow-tooltip width="120" /> <el-table-column prop="remark" label="备注" show-overflow-tooltip width="120" />
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip width="120" /> <el-table-column prop="create_name" label="创建人" />
<el-table-column prop="material_spec" label="物料规格" show-overflow-tooltip width="120" /> <el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />
<el-table-column prop="pcsn" label="批次" show-overflow-tooltip width="120" />
<el-table-column prop="unit_id" label="单位" show-overflow-tooltip width="120" />
<el-table-column prop="biz_code" label="业务单据编码" show-overflow-tooltip width="120" />
<el-table-column prop="biz_date" label="业务单据时间" show-overflow-tooltip width="130" />
<el-table-column prop="parent_id" label="父单据数据id" show-overflow-tooltip width="120" />
<el-table-column
v-for="(item, index) in cols"
:key="item.value"
width="130"
show-overflow-tooltip
:label="item.lable"
>
<template slot-scope="scope">{{ scope.row.form_data[item.value] }}</template>
</el-table-column>
<el-table-column prop="create_time" label="创建时间" />
<el-table-column prop="proc_inst_id" label="对应流程实例id" show-overflow-tooltip width="120" />
<el-table-column <el-table-column
v-permission="['admin','Classstandard:edit','Classstandard:del']" v-permission="['admin','Classstandard:edit','Classstandard:del']"
label="操作" label="操作"
@ -302,8 +298,7 @@ const defaultForm = {
source_form_date: new Date(), source_form_date: new Date(),
material_name: null, material_name: null,
material_spec: null, material_spec: null,
boz_code: null, unit_id: null,
biz_date: null,
form_type: null, form_type: null,
status: null, status: null,
mater: null, mater: null,
@ -387,6 +382,15 @@ export default {
}, },
methods: { methods: {
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
if (this.query.datepick) {
this.query.start_time = this.query.datepick[0]
if (this.query.datepick.length > 1) {
this.query.end_time = this.query.datepick[1]
}
} else {
this.query.start_time = ''
this.query.end_time = ''
}
// if (this.fromTypes.length > 0) { // if (this.fromTypes.length > 0) {
// // formstruc.getHeader(this.query.form_type).then(res => { // // formstruc.getHeader(this.query.form_type).then(res => {
// // this.cols = res // // this.cols = res
@ -399,6 +403,9 @@ export default {
// } // }
// return false // return false
}, },
bill_typeFormat(row, column) {
return this.dict.label.INANDOUT_BILL_TYPE[row.form_type]
},
async queryMater(material_code) { async queryMater(material_code) {
this.materShow = true this.materShow = true
this.materOptCode = material_code this.materOptCode = material_code
@ -408,6 +415,7 @@ export default {
this.form.material_code = row.material_code this.form.material_code = row.material_code
this.form.material_name = row.material_name this.form.material_name = row.material_name
this.form.material_spec = row.material_spec this.form.material_spec = row.material_spec
this.form.unit_id = row.base_unit_id
}, },
// getFromTypes() { // getFromTypes() {
// crudFormData.getParentFormTypes().then((res) => { // // crudFormData.getParentFormTypes().then((res) => { //

Loading…
Cancel
Save