| New file |
| | |
| | | package com.zy.asrs.common.domain.entity; |
| | | |
| | | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.zy.asrs.common.wms.entity.Mat; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 0.A 1.B 2.C 3.D 4.E 5.F 6.G 7.H 8.I |
| | | * 9.J 10.K 11.L 12.M 13.N 14.O 15.P 16.Q 17.R 18.S |
| | | * 19.T 20.U 21.V 22.W 23.X 24.Y 25.Z |
| | | */ |
| | | @Data |
| | | @ExcelIgnoreUnannotated |
| | | public class SafeStoExcel extends Mat { |
| | | |
| | | @ExcelProperty(index = 0, value = "商品编号") |
| | | private String matnr; |
| | | |
| | | @ExcelProperty(index = 1, value = "库位号") |
| | | private String locNo; |
| | | |
| | | @ExcelProperty(index = 2, value = "安全库存") |
| | | private Double safeQua; |
| | | |
| | | @ExcelProperty(index = 3, value = "备注") |
| | | private String memo; |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | package com.zy.asrs.common.utils; |
| | | |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | | import com.alibaba.excel.event.AnalysisEventListener; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.common.domain.entity.SafeStoExcel; |
| | | import com.zy.asrs.common.wms.entity.Mat; |
| | | import com.zy.asrs.common.wms.entity.Prior; |
| | | import com.zy.asrs.common.wms.service.MatService; |
| | | import com.zy.asrs.common.wms.service.PriorService; |
| | | import com.zy.asrs.framework.common.SnowflakeIdWorker; |
| | | import com.zy.asrs.framework.common.SpringUtils; |
| | | import com.zy.asrs.framework.exception.CoolException; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by vincent on 2019-11-25 |
| | | */ |
| | | @Slf4j |
| | | public class SafeStoExcelListener extends AnalysisEventListener<SafeStoExcel> { |
| | | |
| | | private int total = 0; |
| | | private Long userId; |
| | | private Long hostId; |
| | | |
| | | public SafeStoExcelListener() { |
| | | } |
| | | |
| | | public SafeStoExcelListener(Long userId, Long hostId) { |
| | | this.userId = userId; |
| | | this.hostId = hostId; |
| | | } |
| | | |
| | | /** |
| | | * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收 |
| | | */ |
| | | private static final int BATCH_COUNT = 50; |
| | | |
| | | private final List<SafeStoExcel> list = new ArrayList<>(); |
| | | |
| | | /** |
| | | * 这里会一行行的返回头 |
| | | */ |
| | | @Override |
| | | public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { |
| | | } |
| | | |
| | | /** |
| | | * 这个每一条数据解析都会来调用 |
| | | */ |
| | | @Override |
| | | public void invoke(SafeStoExcel excel, AnalysisContext ctx) { |
| | | MatService matService = SpringUtils.getBean(MatService.class); |
| | | PriorService priorService = SpringUtils.getBean(PriorService.class); |
| | | SnowflakeIdWorker snowflakeIdWorker = SpringUtils.getBean(SnowflakeIdWorker.class); |
| | | Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, excel.getMatnr()).eq(Mat::getHostId, hostId)); |
| | | if (mat != null) { |
| | | Prior prior = new Prior(); |
| | | prior.setHostId(hostId); |
| | | prior.setUuid("SP" + snowflakeIdWorker.nextId()); |
| | | prior.setMatId(mat.getId()); |
| | | prior.setMatnr(mat.getMatnr()); |
| | | prior.setMaktx(mat.getMaktx()); |
| | | prior.setLocNo(excel.getLocNo()); |
| | | prior.setSafeQua(excel.getSafeQua()); |
| | | prior.setCreateBy(userId); |
| | | prior.setCreateTime(new Date()); |
| | | prior.setUpdateBy(userId); |
| | | prior.setUpdateTime(new Date()); |
| | | prior.setStatus(1); |
| | | prior.setMemo(excel.getMemo()); |
| | | if (!priorService.save(prior)) { |
| | | throw new CoolException("数据保存失败"); |
| | | } else { |
| | | total++; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 所有数据解析完成了调用 |
| | | * 适合事务 |
| | | */ |
| | | @Override |
| | | public void doAfterAllAnalysed(AnalysisContext ctx) { |
| | | log.info("新增{}条安全库存信息!", total); |
| | | } |
| | | |
| | | public int getTotal() { |
| | | return total; |
| | | } |
| | | } |
| | |
| | | package com.zy.asrs.common.web; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | |
| | | /** |
| | | * 分页组装 |
| | | * |
| | | * @param pageNumber |
| | | * @param pageSize |
| | | * @param map |
| | |
| | | if (!Cools.isEmpty(map.get("condition"))) { |
| | | Set<String> columns = new HashSet<>(); |
| | | for (Field field : Cools.getAllFields(cls)){ |
| | | if (Modifier.isFinal(field.getModifiers()) |
| | | || Modifier.isStatic(field.getModifiers()) |
| | | || Modifier.isTransient(field.getModifiers())){ |
| | | if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers()) || Modifier.isTransient(field.getModifiers())) { |
| | | continue; |
| | | } |
| | | String column = null; |
| | |
| | | |
| | | /** |
| | | * 全字段模糊搜索 |
| | | * |
| | | * @param cls 模型类 |
| | | * @param set 排除字段集合 |
| | | * @param condition 搜索内容 |
| | |
| | | } |
| | | final List<String> columns = new ArrayList<>(); |
| | | for (Field field :Cools.getAllFields(cls)){ |
| | | if (Modifier.isFinal(field.getModifiers()) |
| | | || Modifier.isStatic(field.getModifiers()) |
| | | || Modifier.isTransient(field.getModifiers())){ |
| | | if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers()) || Modifier.isTransient(field.getModifiers())) { |
| | | continue; |
| | | } |
| | | String column = null; |
| | | if (field.isAnnotationPresent(TableField.class)) { |
| | | column = field.getAnnotation(TableField.class).value(); |
| | | column = camelToUnderscore(field.getAnnotation(TableField.class).value()); |
| | | } |
| | | if (Cools.isEmpty(column)) { |
| | | column = field.getName(); |
| | | column = camelToUnderscore(field.getName()); |
| | | } |
| | | if (!set.contains(column)) { |
| | | //if (!set.contains(column)) { |
| | | columns.add(column); |
| | | } |
| | | //} |
| | | } |
| | | if (columns.isEmpty()) { |
| | | return; |
| | |
| | | // } |
| | | } |
| | | |
| | | private static String camelToUnderscore(String camelCase) { |
| | | return camelCase.replaceAll("([a-z])([A-Z])", "$1_$2").toLowerCase(); |
| | | } |
| | | |
| | | // /** |
| | | // * 全字段模糊搜索 |
| | | // * |
| | | // * @param cls 模型类 |
| | | // * @param set 排除字段集合 |
| | | // * @param condition 搜索内容 |
| | | // */ |
| | | // protected <T> void allLike(Class<T> cls, Set<String> set, LambdaQueryWrapper<T> wrapper, String condition) { |
| | | // if (Cools.isEmpty(condition)) { |
| | | // return; |
| | | // } |
| | | // final List<String> columns = new ArrayList<>(); |
| | | // for (Field field : Cools.getAllFields(cls)) { |
| | | // if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers()) || Modifier.isTransient(field.getModifiers())) { |
| | | // continue; |
| | | // } |
| | | // String column = null; |
| | | // if (field.isAnnotationPresent(TableField.class)) { |
| | | // column = camelToUnderscore(field.getAnnotation(TableField.class).value()); |
| | | // } |
| | | // if (Cools.isEmpty(column)) { |
| | | // column = camelToUnderscore(field.getName()); |
| | | // } |
| | | // //if (!set.contains(column)) { |
| | | // columns.add(column); |
| | | // //} |
| | | // } |
| | | // if (columns.isEmpty()) { |
| | | // return; |
| | | // } |
| | | // |
| | | // SFunction<cls, String> columnFunc = Entity::columnName; |
| | | // wrapper.and(w -> { |
| | | // for (int i = 0; i < columns.size(); i++) { |
| | | // String colums = columns.get(i); |
| | | // if (i == 0) { |
| | | // w.like(colums, condition); |
| | | // } else { |
| | | // w.or().like(colums, condition); |
| | | // } |
| | | // } |
| | | // }); |
| | | // |
| | | // |
| | | // } |
| | | |
| | | |
| | | } |
| | |
| | | * 托盘条码 |
| | | */ |
| | | @ApiModelProperty(value= "托盘条码") |
| | | @TableField("zpallet") |
| | | private String zpallet; |
| | | |
| | | /** |
| | |
| | | private Long hostId; |
| | | |
| | | @ApiModelProperty(value= "货主") |
| | | @TableField("owner") |
| | | private String owner; |
| | | |
| | | public LocDetl() {} |
| | |
| | | private String locationStock; |
| | | |
| | | //材质 |
| | | @TableField("material") |
| | | private String material; |
| | | |
| | | //制令 |
| | | @TableField("decrees") |
| | | private String decrees; |
| | | |
| | | //图号 |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | import com.zy.asrs.common.utils.Synchro; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableLogic; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | |
| | | select * from asr_sta_inout_view |
| | | where 1=1 |
| | | <include refid="viewInOutConditionSql"></include> |
| | | order by ymd desc |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | select * from asr_wrkin_view |
| | | where 1=1 |
| | | <include refid="viewWorkInConditionSql"></include> |
| | | order by io_time desc |
| | | </select> |
| | | |
| | | <!-- 不分页查询所有信息,用于excel导出 --> |
| | |
| | | select * from asr_wrkin_view |
| | | where 1=1 |
| | | <include refid="viewWorkInConditionMapSql"></include> |
| | | order by io_time desc |
| | | </select> |
| | | |
| | | <!-- 出库统计 --> |
| | |
| | | from asr_wrkout_view |
| | | where 1=1 |
| | | <include refid="viewWorkInConditionSql"></include> |
| | | order by io_time desc |
| | | </select> |
| | | |
| | | <!-- 不分页查询所有信息,用于excel导出 --> |
| | |
| | | if (!Cools.isEmpty(param.get("matnr"))) { |
| | | wrapper.like(AdjDetl::getMatnr, param.get("matnr")); |
| | | } |
| | | wrapper.orderByDesc(AdjDetl::getModiTime); |
| | | return R.ok(adjDetlService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | |
| | | @RequestParam(required = false) String timeRange, |
| | | @RequestParam Map<String, Object> param) { |
| | | QueryWrapper<LocDetl> wrapper = new QueryWrapper<>(); |
| | | Object barcode = null; |
| | | if (!Cools.isEmpty(param.get("barcode"))) { |
| | | barcode = param.get("barcode"); |
| | | } |
| | | param.remove("zpallet"); |
| | | param.remove("barcode"); |
| | | |
| | | if (!Cools.isEmpty(param.get("decrees"))) { |
| | | ArrayList<String> mats = new ArrayList<>(); |
| | |
| | | mats.add(mat.getMatnr()); |
| | | } |
| | | } |
| | | |
| | | wrapper.in("matnr", mats); |
| | | param.remove("decrees"); |
| | | } |
| | |
| | | wrapper.le("appe_time", DateUtils.convert(range[1])); |
| | | } |
| | | if (!Cools.isEmpty(param.get("locNo"))) { |
| | | wrapper.eq("loc_no", param.get("locNo")); |
| | | wrapper.like("loc_no", param.get("locNo")); |
| | | } |
| | | |
| | | if (!Cools.isEmpty(barcode)) { |
| | | wrapper.eq("zpallet", barcode); |
| | | if (!Cools.isEmpty(param.get("zpallet"))) { |
| | | wrapper.like("zpallet", param.get("zpallet")); |
| | | } |
| | | |
| | | if (!Cools.isEmpty(orderByField)){ |
| | | wrapper.orderBy(true, "asc".equals(orderByType), humpToLine(orderByField)); |
| | | } |
| | | |
| | | |
| | | |
| | | param.remove("locNo"); |
| | | param.remove("owner"); |
| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.OrderItem; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.common.domain.entity.Parameter; |
| | | import com.zy.asrs.common.domain.entity.Shelves; |
| | | import com.zy.asrs.common.domain.param.LocMastInitParam; |
| | | import com.zy.asrs.common.wms.entity.LocDetl; |
| | | import com.zy.asrs.common.wms.entity.LocMast; |
| | | import com.zy.asrs.common.wms.entity.Mat; |
| | | import com.zy.asrs.common.wms.service.LocDetlService; |
| | | import com.zy.asrs.common.wms.service.LocMastService; |
| | | import com.zy.asrs.framework.annotations.ManagerAuth; |
| | |
| | | treeUtils.getTagIdList(Long.parseLong(tagId.toString()), nodes); |
| | | wrapper.in("tag_id", nodes); |
| | | if (!Cools.isEmpty(param.get("matnr"))) { |
| | | wrapper.eq("matnr", param.get("matnr")); |
| | | wrapper.like("matnr", param.get("matnr")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("maktx"))) { |
| | | wrapper.eq("maktx", param.get("maktx")); |
| | | wrapper.like("maktx", param.get("maktx")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("decrees"))) { |
| | | wrapper.eq("decrees", param.get("decrees")); |
| | | wrapper.like("decrees", param.get("decrees")); |
| | | } |
| | | // if (!Cools.isEmpty(param.get("owner$"))) { |
| | | // wrapper.eq("owner", param.get("owner$")); |
| | |
| | | package com.zy.asrs.wms.controller; |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.common.domain.dto.SafeStoDo; |
| | | import com.zy.asrs.common.domain.dto.SafeStoDto; |
| | | import com.zy.asrs.common.domain.entity.LocInPrintMatExcel; |
| | | import com.zy.asrs.common.domain.entity.MatExcel; |
| | | import com.zy.asrs.common.domain.entity.SafeStoExcel; |
| | | import com.zy.asrs.common.utils.MatExcelListener; |
| | | import com.zy.asrs.common.utils.SafeStoExcelListener; |
| | | import com.zy.asrs.common.wms.entity.Mat; |
| | | import com.zy.asrs.common.wms.entity.Prior; |
| | | import com.zy.asrs.common.wms.service.MatService; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | import java.util.*; |
| | | |
| | | @RestController |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | @PostMapping(value = "/safeSto/excel/import/auth") |
| | | @ManagerAuth(memo = "安全库存数据导入") |
| | | @Transactional |
| | | public R matExcelImport(MultipartFile file) throws IOException { |
| | | SafeStoExcelListener listener = new SafeStoExcelListener(getUserId(), getHostId()); |
| | | EasyExcel.read(file.getInputStream(), SafeStoExcel.class, listener).sheet().doRead(); |
| | | return R.ok("成功同步"+listener.getTotal()+"条安全库存数据"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * excel导入模板下载 |
| | | */ |
| | | @RequestMapping(value = "/safeSto/excel/import/mould") |
| | | public void matExcelImportMould(HttpServletResponse response) throws IOException { |
| | | List<SafeStoExcel> excels = new ArrayList<>(); |
| | | response.setContentType("application/vnd.ms-excel"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | String fileName = URLEncoder.encode("安全库存Excel导入模板", "UTF-8"); |
| | | response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); |
| | | EasyExcel.write(response.getOutputStream(), SafeStoExcel.class) |
| | | .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) |
| | | .sheet("sheet1") |
| | | .doWrite(excels); |
| | | } |
| | | } |
| | |
| | | @RequestParam Map<String, Object> param) { |
| | | QueryWrapper<WaitPakin> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("host_id", getHostId()); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like("id", condition); |
| | | } |
| | | convert(param,wrapper); |
| | | if (!Cools.isEmpty(timeRange)) { |
| | | String[] range = timeRange.split(RANGE_TIME_LINK); |
| | |
| | | @RequestParam Map<String, Object> param) { |
| | | LambdaQueryWrapper<WaitPakinLog> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(WaitPakinLog::getHostId, getHostId()); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(WaitPakinLog::getId, condition); |
| | | } |
| | | if (!Cools.isEmpty(timeRange)) { |
| | | String[] range = timeRange.split(RANGE_TIME_LINK); |
| | | wrapper.ge(WaitPakinLog::getAppeTime, DateUtils.convert(range[0])); |
| | | wrapper.le(WaitPakinLog::getAppeTime, DateUtils.convert(range[1])); |
| | | } |
| | | if (!Cools.isEmpty(param.get("zpallet"))) { |
| | | wrapper.like(WaitPakinLog::getZpallet, param.get("zpallet")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("matnr"))) { |
| | | wrapper.like(WaitPakinLog::getMatnr, param.get("matnr")); |
| | | } |
| | | return R.ok(waitPakinLogService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | |
| | | package com.zy.asrs.wms.controller; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.common.web.BaseController; |
| | | import com.zy.asrs.common.wms.entity.WrkDetl; |
| | | import com.zy.asrs.common.wms.service.WrkDetlService; |
| | | import com.zy.asrs.framework.annotations.ManagerAuth; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.DateUtils; |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.framework.domain.KeyValueVo; |
| | | import com.zy.asrs.framework.common.DateUtils; |
| | | import com.zy.asrs.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.*; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | public class WrkDetlController extends BaseController { |
| | |
| | | @RequestParam(required = false) String condition, |
| | | @RequestParam(required = false) String timeRange, |
| | | @RequestParam Map<String, Object> param) { |
| | | LambdaQueryWrapper<WrkDetl> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(WrkDetl::getHostId, getHostId()); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(WrkDetl::getId, condition); |
| | | } |
| | | QueryWrapper<WrkDetl> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("host_id", getHostId()); |
| | | // if (!Cools.isEmpty(condition)) { |
| | | // wrapper.like(WrkDetl::getId, condition); |
| | | // } |
| | | if (!Cools.isEmpty(timeRange)) { |
| | | String[] range = timeRange.split(RANGE_TIME_LINK); |
| | | wrapper.ge(WrkDetl::getAppeTime, DateUtils.convert(range[0])); |
| | | wrapper.le(WrkDetl::getAppeTime, DateUtils.convert(range[1])); |
| | | wrapper.ge("io_time", DateUtils.convert(range[0])); |
| | | wrapper.le("io_time", DateUtils.convert(range[1])); |
| | | } |
| | | if (!Cools.isEmpty(param.get("wrk_mast_id"))) { |
| | | wrapper.eq(WrkDetl::getWrkMastId, param.get("wrk_mast_id")); |
| | | wrapper.eq("wrk_mast_id", param.get("wrk_mast_id")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("matnr"))) { |
| | | wrapper.like(WrkDetl::getMatnr, param.get("matnr")); |
| | | wrapper.like("matnr", param.get("matnr")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("maktx"))) { |
| | | wrapper.like(WrkDetl::getMaktx, param.get("maktx")); |
| | | wrapper.like("maktx", param.get("maktx")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("zpallet"))) { |
| | | wrapper.like("zpallet", param.get("zpallet")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("orderNo"))) { |
| | | wrapper.like("order_no", param.get("orderNo")); |
| | | } |
| | | allLike(WrkDetl.class, param.keySet(), wrapper, condition); |
| | | wrapper.orderByDesc("io_time"); |
| | | return R.ok(wrkDetlService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.common.wms.entity.WrkDetl; |
| | | import com.zy.asrs.common.wms.entity.WrkDetlLog; |
| | |
| | | @RequestParam(required = false) String condition, |
| | | @RequestParam(required = false) String timeRange, |
| | | @RequestParam Map<String, Object> param) { |
| | | LambdaQueryWrapper<WrkDetlLog> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(WrkDetlLog::getHostId, getHostId()); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(WrkDetlLog::getId, condition); |
| | | } |
| | | QueryWrapper<WrkDetlLog> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("host_id", getHostId()); |
| | | // if (!Cools.isEmpty(condition)) { |
| | | // wrapper.like(WrkDetl::getId, condition); |
| | | // } |
| | | if (!Cools.isEmpty(timeRange)) { |
| | | String[] range = timeRange.split(RANGE_TIME_LINK); |
| | | wrapper.ge(WrkDetlLog::getAppeTime, DateUtils.convert(range[0])); |
| | | wrapper.le(WrkDetlLog::getAppeTime, DateUtils.convert(range[1])); |
| | | wrapper.ge("io_time", DateUtils.convert(range[0])); |
| | | wrapper.le("io_time", DateUtils.convert(range[1])); |
| | | } |
| | | if (!Cools.isEmpty(param.get("wrk_mast_id"))) { |
| | | wrapper.eq(WrkDetlLog::getWrkMastId, param.get("wrk_mast_id")); |
| | | wrapper.eq("wrk_mast_id", param.get("wrk_mast_id")); |
| | | } |
| | | wrapper.orderByDesc(WrkDetlLog::getId); |
| | | if (!Cools.isEmpty(param.get("matnr"))) { |
| | | wrapper.like("matnr", param.get("matnr")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("maktx"))) { |
| | | wrapper.like("maktx", param.get("maktx")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("zpallet"))) { |
| | | wrapper.like("zpallet", param.get("zpallet")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("orderNo"))) { |
| | | wrapper.like("order_no", param.get("orderNo")); |
| | | } |
| | | allLike(WrkDetlLog.class, param.keySet(), wrapper, condition); |
| | | wrapper.orderByDesc("io_time"); |
| | | return R.ok(wrkDetlLogService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | |
| | | excludeTrash(param); |
| | | QueryWrapper<WrkMast> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("host_id",getHostId()); |
| | | System.out.println(param); |
| | | convert(param, wrapper); |
| | | return R.ok(wrkMastService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.common.wms.entity.WrkMastLog; |
| | | import com.zy.asrs.common.wms.service.WrkMastLogService; |
| | |
| | | @RequestParam(required = false) String condition, |
| | | @RequestParam(required = false) String timeRange, |
| | | @RequestParam Map<String, Object> param) { |
| | | LambdaQueryWrapper<WrkMastLog> wrapper = new LambdaQueryWrapper<>(); |
| | | QueryWrapper<WrkMastLog> wrapper = new QueryWrapper<>(); |
| | | // wrapper.eq(WrkMastLog::getHostId, getHostId()); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(WrkMastLog::getWrkNo, condition); |
| | | } |
| | | if (!Cools.isEmpty(timeRange)) { |
| | | String[] range = timeRange.split(RANGE_TIME_LINK); |
| | | wrapper.ge(WrkMastLog::getAppeTime, DateUtils.convert(range[0])); |
| | | wrapper.le(WrkMastLog::getAppeTime, DateUtils.convert(range[1])); |
| | | wrapper.ge("appe_time", DateUtils.convert(range[0])); |
| | | wrapper.le("appe_time", DateUtils.convert(range[1])); |
| | | } |
| | | if (!Cools.isEmpty(param.get("barcode"))) { |
| | | wrapper.eq("barcode", param.get("barcode")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("wrkNo"))) { |
| | | wrapper.eq(WrkMastLog::getWrkNo, param.get("wrkNo")); |
| | | wrapper.eq("wrk_no", param.get("wrkNo")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("wrkSts"))) { |
| | | wrapper.eq(WrkMastLog::getWrkSts, param.get("wrkSts")); |
| | | wrapper.eq("wrk_sts", param.get("wrkSts")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("ioType"))) { |
| | | wrapper.eq(WrkMastLog::getIoType, param.get("ioType")); |
| | | wrapper.eq("iotype", param.get("ioType")); |
| | | } |
| | | if (!Cools.isEmpty(param.get("manuType"))) { |
| | | wrapper.like(WrkMastLog::getManuType, param.get("manuType")); |
| | | wrapper.like("manu_type", param.get("manuType")); |
| | | } |
| | | wrapper.orderByDesc(WrkMastLog::getId); |
| | | allLike(WrkMastLog.class, param.keySet(), wrapper, condition); |
| | | wrapper.orderByDesc("id"); |
| | | return R.ok(wrkMastLogService.page(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | |
| | | enabled: false |
| | | datasource: |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | url: jdbc:sqlserver://127.0.0.1:1433;databasename=ncasrs |
| | | url: jdbc:sqlserver://192.168.4.34:1433;databasename=ncasrs |
| | | # url: jdbc:sqlserver://localhost:1433;databasename=jmasrs |
| | | # username: sa |
| | | # password: sa@123 |
| | |
| | | |
| | | /*************************************************************************************************************/ |
| | | /********************************************** 物料业务抽象 ***************************************************/ |
| | | |
| | | /*************************************************************************************************************/ |
| | | |
| | | function arrRemove(arr, key, val) { |
| | |
| | | ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | ,{field: 'units', align: 'center',title: '单位量', hide: true} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | , {field: 'barcode', align: 'center', title: '托盘码', hide: true} |
| | | ,{field: 'origin', align: 'center',title: '产地', hide: true} |
| | | ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true} |
| | |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '批号', width: 80, sort:true} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码'} |
| | | , {field: 'zpallet', align: 'center', title: '托盘条码', sort: true} |
| | | ,{field: 'owner', align: 'center',title: '货主'} |
| | | ,{field: 'fullPlt$', align: 'center',title: '是否满板'} |
| | | ,{field: 'specs', align: 'center',title: '规格'} |
| | | ,{field: 'templet', align: 'center',title: '机型',templet:function(row){ |
| | | , { |
| | | field: 'templet', align: 'center', title: '机型', templet: function (row) { |
| | | if(row.mat$) { |
| | | return row.mat$.model |
| | | } |
| | | }} |
| | | ,{field: 'templet', align: 'center',title: '制令',templet:function(row){ |
| | | } |
| | | } |
| | | , { |
| | | field: 'templet', align: 'center', title: '制令', templet: function (row) { |
| | | if (row.mat$) { |
| | | return row.mat$.decrees; |
| | | } |
| | | }} |
| | | } |
| | | } |
| | | |
| | | |
| | | ,{field: 'color', align: 'center',title: '颜色', hide: true} |
| | |
| | | ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | ,{field: 'units', align: 'center',title: '单位量', hide: true} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | , {field: 'barcode', align: 'center', title: '托盘码', hide: true} |
| | | ,{field: 'origin', align: 'center',title: '产地', hide: true} |
| | | ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true} |
| | |
| | | var detlColsWrkDetl = [ |
| | | {field: 'matnr', align: 'center',title: '品号', sort:true, width: 150} |
| | | ,{field: 'maktx', align: 'center',title: '名称', sort:true, width: 150} |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | , {field: 'orderNo', align: 'center', title: '单据编号', sort: true, hide: false} |
| | | ,{field: 'orderType', align: 'center',title: '单据类型', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '批号', width: 80, sort:true} |
| | | ,{field: 'anfme', align: 'center',title: '数量', width: 70} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', width: 100} |
| | | , {field: 'zpallet', align: 'center', title: '托盘条码', sort: true, width: 100} |
| | | ,{field: 'owner', align: 'center',title: '货主', width: 80} |
| | | ,{field: 'fullPlt$', align: 'center',title: '是否满板', width: 100} |
| | | ,{field: 'specs', align: 'center',title: '规格', width: 80} |
| | |
| | | ,{field: 'price', align: 'center',title: '单价', hide: true} |
| | | ,{field: 'sku', align: 'center',title: 'sku', hide: true} |
| | | ,{field: 'units', align: 'center',title: '单位量', hide: true} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide: true} |
| | | , {field: 'barcode', align: 'center', title: '托盘码', hide: true} |
| | | ,{field: 'origin', align: 'center',title: '产地', hide: true} |
| | | ,{field: 'manu', align: 'center',title: '厂家', hide: true} |
| | | ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true} |
| | |
| | | ,{field: 'danger$', align: 'center',title: '危险品', hide: true} |
| | | ] |
| | | |
| | | function getQueryVariable(variable) |
| | | { |
| | | function getQueryVariable(variable) { |
| | | var query = window.location.search.substring(1); |
| | | var vars = query.split("&"); |
| | | for (var i=0;i<vars.length;i++) { |
| | | var pair = vars[i].split("="); |
| | | if(pair[0] == variable){return pair[1];} |
| | | if (pair[0] == variable) { |
| | | return pair[1]; |
| | | } |
| | | } |
| | | return(false); |
| | | } |
| | |
| | | ,{field: 'staNo$', align: 'center',title: '目标站', hide:true} |
| | | ,{field: 'sourceLocNo$', align: 'center',title: '源库位', hide:true} |
| | | ,{field: 'locNo$', align: 'center',title: '目标库位', hide:true} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide:true} |
| | | ,{field: 'barcode', align: 'center',title: '托盘码', hide:true} |
| | | ,{field: 'updMk', align: 'center',title: '异常标记'} |
| | | ,{field: 'errorTime$', align: 'center',title: '异常记录时间'} |
| | | ,{field: 'errorMemo', align: 'center',title: '异常内容'} |
| | |
| | | var pageCurr; |
| | | |
| | | function getCol() { |
| | | var cols = [ |
| | | {field: 'locNo', align: 'center',title: '库位号'}, |
| | |
| | | ,{field: 'orderType', align: 'center',title: '单据类型', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '批号', width: 80, sort:true} |
| | | ,{field: 'anfme', align: 'center',title: '数量', width: 100} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘码'} |
| | | ,{field: 'templet', align: 'center',title: '机型',templet:function(row){ |
| | | , {field: 'zpallet', align: 'center', title: '托盘码', sort: true} |
| | | , { |
| | | field: 'templet', align: 'center', title: '机型', templet: function (row) { |
| | | return row.mat$.model |
| | | }} |
| | | ,{field: 'templet', align: 'center',title: '制令',templet:function(row){ |
| | | } |
| | | } |
| | | , { |
| | | field: 'templet', align: 'center', title: '制令', templet: function (row) { |
| | | return row.mat$.decrees |
| | | }} |
| | | } |
| | | } |
| | | , {field: 'owner', align: 'center', title: '货主'} |
| | | ,{field: 'memo', align: 'center',title: '备注'} |
| | | // ,{field: 'owner$', align: 'center',title: '拥有者'} |
| | | |
| | |
| | | success: function(layero, index){ |
| | | layer.getChildFrame('#data-detail-submit-edit', index).hide(); |
| | | clearFormVal(layer.getChildFrame('#detail', index)); |
| | | layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); |
| | | layer.iframeAuto(index); |
| | | layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"}); |
| | | } |
| | | }); |
| | | break; |
| | |
| | | setFormVal(layer.getChildFrame('#detail', index), data, true); |
| | | top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true); |
| | | layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide(); |
| | | layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); |
| | | layer.iframeAuto(index); |
| | | layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"}); |
| | | layero.find('iframe')[0].contentWindow.layui.form.render('select'); |
| | | layero.find('iframe')[0].contentWindow.layui.form.render('checkbox'); |
| | | } |
| | |
| | | setFormVal(layer.getChildFrame('#detail', index), data, false); |
| | | top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); |
| | | top.convertDisabled(layer.getChildFrame('#locNo,#matnr', index), true); |
| | | layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); |
| | | layer.iframeAuto(index); |
| | | layer.style(index, {top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px"}); |
| | | layero.find('iframe')[0].contentWindow.layui.form.render('select'); |
| | | layero.find('iframe')[0].contentWindow.layui.form.render('checkbox'); |
| | | } |
| | |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | ,{field: 'matNo', align: 'center',title: '物料编码'} |
| | | ,{field: 'barcode', align: 'center',title: '条码'} |
| | | ,{field: 'barcode', align: 'center',title: '托盘码'} |
| | | ,{field: 'matName', align: 'center',title: '物料名称'} |
| | | ,{field: 'str1', align: 'center',title: '物料单位'} |
| | | ,{field: 'str2', align: 'center',title: '物料规格'} |
| | |
| | | ,{field: 'level', align: 'center',title: '等级'} |
| | | ,{field: 'leading', align: 'center',title: '负责人'} |
| | | ,{field: 'sort', align: 'center',title: '排序'} |
| | | ,{field: 'barcode', align: 'center',title: '条码'} |
| | | ,{field: 'barcode', align: 'center',title: '托盘码'} |
| | | ,{field: 'major', align: 'center',title: '推荐位'} |
| | | ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'createTime$', align: 'center',title: '添加时间'} |
| | |
| | | var pageCurr; |
| | | var admin; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'element', 'admin', 'xmSelect'], function(){ |
| | |
| | | var layDate = layui.laydate; |
| | | var form = layui.form; |
| | | var element = layui.element; |
| | | var admin = layui.admin; |
| | | admin = layui.admin; |
| | | var xmSelect = layui.xmSelect; |
| | | |
| | | |
| | | // 数据渲染 |
| | | tableIns = table.render({ |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | $('body').keydown(function () { |
| | | if (event.keyCode === 13) { |
| | | $("#search").click(); |
| | | } |
| | | }); |
| | | |
| | | // excel导入模板下载 |
| | | function downloadData() { |
| | | layer.load(1, {shade: [0.1, '#fff']}); |
| | | location.href = baseUrl + "/safeSto/excel/import/mould"; |
| | | layer.closeAll('loading'); |
| | | } |
| | | |
| | | // excel导入 |
| | | function importData() { |
| | | $("#btn-import").trigger("click"); |
| | | } |
| | | |
| | | function upload(obj) { |
| | | if (!obj.files) { |
| | | return; |
| | | } |
| | | var file = obj.files[0]; |
| | | admin.confirm('确认同步 [' + file.name + '] 文件吗?', function (index) { |
| | | layer.load(1, {shade: [0.1, '#fff']}); |
| | | var url = baseUrl + "/safeSto/excel/import/auth"; |
| | | var form = new FormData(); |
| | | form.append("file", file); |
| | | xhr = new XMLHttpRequest(); |
| | | xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。 |
| | | xhr.setRequestHeader('token', localStorage.getItem('token')); |
| | | xhr.onload = uploadComplete; //请求完成 |
| | | xhr.onerror = uploadFailed; //请求失败 |
| | | xhr.onloadend = function () { // // 上传完成重置文件流 |
| | | layer.closeAll('loading'); |
| | | $("#importExcel").val(""); |
| | | }; |
| | | // xhr.upload.onprogress = progressFunction;//【上传进度调用方法实现】 |
| | | xhr.upload.onloadstart = function () {//上传开始执行方法 |
| | | ot = new Date().getTime(); //设置上传开始时间 |
| | | oloaded = 0;//设置上传开始时,以上传的文件大小为0 |
| | | }; |
| | | xhr.send(form); |
| | | }, function (index) { |
| | | $("#btn-import").val(""); |
| | | }); |
| | | } |
| | | |
| | | function uploadComplete(evt) { |
| | | var res = JSON.parse(evt.target.responseText); |
| | | if(res.code === 200) { |
| | | layer.msg(res.msg, {icon: 1}); |
| | | loadTree(""); |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | |
| | | function uploadFailed(evt) { |
| | | var res = JSON.parse(evt.target.responseText); |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | |
| | | html += ">"; |
| | | return html; |
| | | }, hide: true} |
| | | ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间'} |
| | | ,{field: 'ioStatus', align: 'center',title: '入出状态', templet:function(row){ |
| | | var html = "<input value='ioStatus' type='checkbox' lay-skin='switch' lay-text='入库中|待入库' lay-filter='tableCheckbox' disabled='disabled' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | | if(row.ioStatus === 'Y'){html += " checked ";} |
| | | html += ">"; |
| | | return html; |
| | | }} |
| | | ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true}) |
| | | ) |
| | | return cols; |
| | | } |
| | | |
| | |
| | | ,{field: 'ioTime$', align: 'center',title: '工作时间',sort: true, width: 160} |
| | | ,{field: 'wrkSts$', align: 'center',title: '工作状态'} |
| | | ,{field: 'ioType$', align: 'center',title: '入出库类型'} |
| | | ,{field: 'ioPri', align: 'center',title: '优先级'} |
| | | ,{field: 'ioPri', align: 'center',title: '优先级',sort: true} |
| | | ,{field: 'sourceStaNo', align: 'center',title: '源站'} |
| | | ,{field: 'staNo', align: 'center',title: '目标站'} |
| | | ,{field: 'sourceLocNo', align: 'center',title: '源库位'} |
| | | ,{field: 'locNo', align: 'center',title: '目标库位'} |
| | | ,{field: 'barcode', align: 'center',title: '条码'} |
| | | ,{field: 'barcode', align: 'center',title: '托盘码'} |
| | | ,{field: 'preHave', align: 'center',title: '先入品', hide: true} |
| | | ,{field: 'takeNone', align: 'center',title: '空操作', hide: true} |
| | | // ,{field: 'picking', align: 'center',title: '拣料', templet:function(row){ |
| | |
| | | list.push({ |
| | | wrkNo: track.wrkNo, |
| | | ioTime: track.ioTime, |
| | | ioPri: track.ioPri |
| | | ioPri: track.ioPri, |
| | | id: track.id |
| | | }); |
| | | }); |
| | | $.ajax({ |
| | |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true} |
| | | // ,{field: 'appeUser$', align: 'center',title: '创建者',event: 'appeUser', style: 'cursor:pointer'} |
| | | // ,{field: 'appeTime$', align: 'center',title: '添加时间'} |
| | | ,{field: 'barcode', align: 'center',title: '条码'} |
| | | ,{field: 'barcode', align: 'center',title: '托盘码'} |
| | | // ,{field: 'fullPlt', align: 'center',title: '满板', templet:function(row){ |
| | | // var html = "<input value='fullPlt' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | | // if(row.fullPlt === 'Y'){html += " checked ";} |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/locDetl/locDetl.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/locDetl/locDetl.js?v=1" charset="utf-8"></script> |
| | | |
| | | <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> |
| | | |
| | |
| | | <input class="layui-input" type="text" name="matnr" placeholder="商品编号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="maktx" placeholder="名称" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <!-- 待添加 --> |
| | | <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block"> |
| | | <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索 |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">条码: </label> |
| | | <label class="layui-form-label">托盘码: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="barcode" placeholder="请输入条码"> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">条码: </label> |
| | | <label class="layui-form-label">托盘码: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="barcode" placeholder="请输入条码"> |
| | | </div> |
| | |
| | | <!-- <input class="layui-input" type="text" name="owner$" placeholder="拥有者" autocomplete="off">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="maktx" placeholder="名称" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input class="layui-input" type="text" name="maktx" placeholder="名称" autocomplete="off">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- 日期范围 --> |
| | | <div class="layui-inline" style="width: 300px"> |
| | | <div class="layui-input-inline"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">条码: </label> |
| | | <label class="layui-form-label">托盘码: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="barcode" placeholder="请输入条码"> |
| | | </div> |
| | |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-sm" id="btn-add1" lay-event="add"><i class="layui-icon"></i>添加</button> |
| | | <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">删除</button> |
| | | <input class="layui-btn layui-btn-primary layui-btn-sm" id="btn-import" type="file" onchange="upload(this)" title="导入"> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-download" onclick="downloadData()" >模板下载</button> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button> |
| | | </div> |
| | | </script> |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/safeSto/safeSto.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/safeSto/safeSto.js?v=4" charset="utf-8"></script> |
| | | |
| | | <!-- 表单弹窗 --> |
| | | <script type="text/html" id="editDialog"> |
| | |
| | | <input class="layui-input" type="text" name="matnr" placeholder="商品编号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="owner" placeholder="货主" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <!-- 日期范围 --> |
| | | <div class="layui-inline" style="width: 300px"> |
| | | <div class="layui-input-inline"> |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/waitPakin/waitPakin.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/waitPakin/waitPakin.js?v=2" charset="utf-8"></script> |
| | | |
| | | <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> |
| | | |
| | |
| | | <input class="layui-input" type="text" name="pakin_id" placeholder="入库通知号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="zpallet" placeholder="托盘码" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="matnr" placeholder="品号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <!-- 日期范围 --> |
| | | <div class="layui-inline" style="width: 300px"> |
| | | <div class="layui-input-inline"> |
| | |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="zpallet" placeholder="托盘码" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="orderNo" placeholder="单据" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="owner" placeholder="拥有者编号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/wrkDetl/wrkDetl.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/wrkDetl/wrkDetl.js?v=1" charset="utf-8"></script> |
| | | |
| | | <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> |
| | | |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/wrkMast/wrkMast.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/wrkMast/wrkMast.js?v=1" charset="utf-8"></script> |
| | | |
| | | <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="barcode" placeholder="托盘码" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline cool-auto-complete"> |
| | | <input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="请输入" autocomplete="off" style="display: none"> |
| | | <input id="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="工作状态" onfocus=this.blur()> |
| | |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/wrkMastLog/wrkMastLog.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/wrkMastLog/wrkMastLog.js?v=1" charset="utf-8"></script> |
| | | |
| | | <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> |
| | | |