mrzhssss
2022-01-05 321eb88924aa7d93bac9df6a0f1680cd72eb9a70
2022-1-5
6个文件已修改
10个文件已添加
7768 ■■■■■ 已修改文件
src/main/java/itemDetl.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/CodeBuilder.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/model/ReceiveStoDto.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/service/MainService.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/ItemDetlController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/controller/WorkController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/entity/ItemDetl.java 4908 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/mapper/ItemDetlMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/ItemDetlService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/impl/ItemDetlServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ItemDetlMapper.xml 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ReceiveDetlMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/itemDetl/itemDetl.js 848 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/itemDetl/itemDetl.html 1288 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/itemDetl.sql
New file
@@ -0,0 +1,18 @@
-- save itemDetl record
-- mysql
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'itemDetl/itemDetl.html', 'itemDetl管理', null , '2', null , '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'itemDetl#view', '查询', '', '3', '0', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'itemDetl#btn-add', '新增', '', '3', '1', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'itemDetl#btn-edit', '编辑', '', '3', '2', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'itemDetl#btn-delete', '删除', '', '3', '3', '1');
insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'itemDetl#btn-export', '导出', '', '3', '4', '1');
-- sqlserver
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'itemDetl/itemDetl.html', N'itemDetl管理', null, '2', null, '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'itemDetl#view', N'查询', '30527', '3', '0', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'itemDetl#btn-add', N'新增', '30527', '3', '1', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'itemDetl#btn-edit', N'编辑', '30527', '3', '2', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'itemDetl#btn-delete', N'删除', '30527', '3', '3', '1');
insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'itemDetl#btn-export', N'导出', '30527', '3', '4', '1');
src/main/java/zy/cloud/wms/common/CodeBuilder.java
@@ -1,10 +1,15 @@
package zy.cloud.wms.common;
import com.core.generators.CoolGenerator;
import com.core.generators.constant.SqlOsType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
 * Created by vincent on 2019-06-04
 */
@Data
public class CodeBuilder {
    public static void main(String[] args) throws Exception {
@@ -15,16 +20,16 @@
//        generator.password="xltys1995";
//        generator.table="sys_host";
        // sqlserver
        generator.url="localhost:1433;databasename=yjwms";
        generator.url="localhost:1433;databasename=wms_saas";
        generator.username="sa";
        generator.password="sa@123";
        generator.table="man_cstmr";
        generator.table="man_item_detl";
        generator.packagePath="zy.cloud.wms.manager";
        generator.sqlOsType = SqlOsType.SQL_SERVER;
//        generator.js = false;
//        generator.html = false;
//        generator.htmlDetail = false;
//        generator.sql = false;
        generator.build();
    }
}
src/main/java/zy/cloud/wms/common/model/ReceiveStoDto.java
New file
@@ -0,0 +1,38 @@
package zy.cloud.wms.common.model;
import lombok.Data;
import zy.cloud.wms.manager.entity.OrderDetl;
import zy.cloud.wms.manager.entity.Receive;
import zy.cloud.wms.manager.entity.ReceiveDetl;
import java.util.ArrayList;
import java.util.List;
@Data
public class ReceiveStoDto {
    private String orderNo;
    private List<MatnrDto> dtos;
    public ReceiveStoDto() {
    }
    public ReceiveStoDto(String orderNo, List<MatnrDto> dtos) {
        this.orderNo = orderNo;
        this.dtos = dtos;
    }
    public ReceiveStoDto create(String orderNo, List<ReceiveDetl> receiveDetls) {
        this.setOrderNo(orderNo);
        List<MatnrDto> matnrDtos = new ArrayList<>();
        for (ReceiveDetl receiveDetl : receiveDetls) {
            MatnrDto matnrDto = new MatnrDto();
            matnrDto.setMatnr(receiveDetl.getMatnr());
            matnrDto.setCount(receiveDetl.getAnfme());
            matnrDtos.add(matnrDto);
        }
        this.setDtos(matnrDtos);
        return this;
    }
}
src/main/java/zy/cloud/wms/common/service/MainService.java
@@ -9,6 +9,7 @@
import org.springframework.transaction.annotation.Transactional;
import zy.cloud.wms.common.model.MatnrDto;
import zy.cloud.wms.common.model.OrderStoDto;
import zy.cloud.wms.common.model.ReceiveStoDto;
import zy.cloud.wms.common.utils.VersionUtils;
import zy.cloud.wms.manager.entity.*;
import zy.cloud.wms.manager.service.*;
@@ -32,6 +33,10 @@
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private OrderService orderService;
    @Autowired
    private ReceiveService receiveService;
    @Autowired
    private ReceiveDetlService receiveDetlService;
    @Transactional
    public List<StoPreTab> stockOutPreview(OrderStoDto orderStoDto, Long hostId) {
@@ -47,6 +52,80 @@
            Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr());
            if (null == mat) {
                throw new CoolException(matnrDto.getMatnr() + "物料尚未更新。" + orderStoDto.getOrderNo() +"单据因此中断!");
            }
            Double sumAnfme = Optional.ofNullable(locDetlService.selectCountByMatnr(mat.getMatnr(), hostId)).orElse(0.0D);
            double lack = 0.0D;
            // 缺货
            if (sumAnfme < matnrDto.getCount()) {
                lack = matnrDto.getCount() - sumAnfme;
                // 视图对象
                StoPreTab tab = new StoPreTab();
                tab.setTitle(mat.getMaktx() + "(" + mat.getMatnr() + ")");
                tab.setMatnr(mat.getMatnr());
                tab.setMaktx(mat.getMaktx());
                tab.setAnfme(matnrDto.getCount());
                tab.setLocNo("缺货");
                tab.setTotal(lack);
                tab.setReduce(lack);
                tab.setRemQty(0.0D);
                tab.setPrior(false);
                tab.setPrior$("×");
                tab.setType(0);
                res.add(tab);
            }
            // 查询存有当前物料的货位
            List<LocDetl> locDetls = locDetlService.findOfSort(hostId, mat.getMatnr());
            double issued = Optional.of(matnrDto.getCount() - lack).orElse(0.0D) ;
            double anfme = issued;
            for (LocDetl locDetl : locDetls) {
                if (issued > 0) {
                    // 视图对象
                    StoPreTab tab = new StoPreTab();
                    tab.setTitle(mat.getMaktx() + "(" + mat.getMatnr() + ")");
                    tab.setMatnr(mat.getMatnr());
                    tab.setMaktx(mat.getMaktx());
                    tab.setAnfme(matnrDto.getCount());
                    tab.setLocNo(locDetl.getLocNo());
                    tab.setNodeId(locDetl.getNodeId());
                    tab.setTotal(locDetl.getAnfme());
                    tab.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                    tab.setRemQty(tab.getTotal() - tab.getReduce());
                    tab.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr()));
                    tab.setPrior$(tab.getPrior()?"✔":"×");
                    tab.setType(1);
                    res.add(tab);
                    // 剩余待出数量递减
                    issued = issued - locDetl.getAnfme();
                }
            }
        }
        res.sort(new Comparator<StoPreTab>() {
            @Override
            public int compare(StoPreTab o1, StoPreTab o2) {
//                return o1.getMatnr().length() - o2.getMatnr().length();
                return (int) (o1.getAnfme() - o2.getAnfme());
            }
        });
        return res;
    }
    @Transactional
    public List<StoPreTab> receiveStockOutPreview(ReceiveStoDto receiveStoDto, Long hostId) {
        if (Cools.isEmpty(receiveStoDto) || Cools.isEmpty(receiveStoDto.getDtos())) {
            throw new CoolException("数据异常,请联系管理员");
        }
        List<StoPreTab> res = new ArrayList<>();
        // 检查库存是否足够
//        locDetlService.checkLocDetlCount(orderStoDto.getDtos());
        for (MatnrDto matnrDto : receiveStoDto.getDtos()) {
            // 判断物料是否存在
            Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr());
            if (null == mat) {
                throw new CoolException(matnrDto.getMatnr() + "物料尚未更新。" + receiveStoDto.getOrderNo() +"单据因此中断!");
            }
            Double sumAnfme = Optional.ofNullable(locDetlService.selectCountByMatnr(mat.getMatnr(), hostId)).orElse(0.0D);
@@ -171,5 +250,83 @@
            }
        }
    }
    @Transactional
    public void receiveStockOutProcess(ReceiveStoDto receiveStoDto, Long hostId) {
        if (Cools.isEmpty(receiveStoDto) || Cools.isEmpty(receiveStoDto.getDtos())) {
            return;
        }
        Receive receive = receiveService.selectByOrderNo(receiveStoDto.getOrderNo(), hostId);
//        Order order = orderService.selectByOrderNo(orderStoDto.getOrderNo(), hostId);
        if (receive == null) {
            throw new CoolException(receiveStoDto.getOrderNo() + "单据不存在");
        }
        Date now = new Date();
        // 检查库存是否足够
        locDetlService.checkLocDetlCount(receiveStoDto.getDtos(), hostId);
        for (MatnrDto matnrDto : receiveStoDto.getDtos()) {
            // 判断物料是否存在
            Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr());
            if (null == mat) {
                throw new CoolException(matnrDto.getMatnr() + "物料尚未更新。" + matnrDto.getCount() +"单据因此中断!");
            }
            // 查询存有当前物料的货位
            List<LocDetl> locDetls = locDetlService.findOfSort(hostId, mat.getMatnr());
            double issued = Optional.ofNullable(matnrDto.getCount()).orElse(0.0D) ;
            for (LocDetl locDetl : locDetls) {
                if (issued > 0) {
                    // 保存出库通知单
                    Pakout pakout = new Pakout();
                    pakout.setHostId(hostId);
                    pakout.setWrkSts(1L);
                    pakout.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                    pakout.setZpallet(locDetl.getZpallet());
                    pakout.setLocNo(locDetl.getLocNo());
                    pakout.setNodeId(locDetl.getNodeId());
                    pakout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId()));
                    VersionUtils.setPakout(pakout, mat);
                    pakout.setDocId(receive.getDocType()); // 单据类型
                    pakout.setDocNum(receive.getOrderNo());    // 单据编号
                    pakout.setCreateTime(now);
                    pakout.setUpdateTime(now);
                    pakout.setStatus(1);
                    if (!pakoutService.insert(pakout)) {
                        throw new CoolException("保存出库通知单失败");
                    }
                    if (issued>=locDetl.getAnfme()) {
//                        // 删除库存明细
//                        if (!locDetlService.removeStock(locDetl.getNodeId(), mat.getMatnr())) {
//                            throw new CoolException("删除库存明细失败");
//                        }
                    } else {
//                        // 修改库存明细数量
//                        if (!locDetlService.reduceStock(locDetl.getNodeId(), mat.getMatnr(), issued)) {
//                            throw new CoolException("修改库存明细数量失败");
//                        }
                    }
                    // 剩余待出数量递减
                    issued = issued - locDetl.getAnfme();
                }
            }
            // 修改单据状态
            if (!orderService.updateSettle(receiveStoDto.getOrderNo(), 2L, hostId)) {
                throw new CoolException("修改单据状态失败");
            }
        }
    }
    public static void main(String[] args) {
        for (int i = 2; i < 51; i++) {
            System.out.println("EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'节点"+i+"名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'man_item_detl', @level2type=N'COLUMN',@level2name=N'node"+i+"_name'\n" +
                    "GO");
            System.out.println("EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'节点"+i+"截止日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'man_item_detl', @level2type=N'COLUMN',@level2name=N'node"+i+"_deadline'\n" +
                    "GO");
            System.out.println("EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'节点"+i+"完工日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'man_item_detl', @level2type=N'COLUMN',@level2name=N'node"+i+"_real_deadline'\n" +
                    "GO");
            System.out.println("EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'节点"+i+"超出日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'man_item_detl', @level2type=N'COLUMN',@level2name=N'node"+i+"_extra_day'\n" +
                    "GO");
        }
    }
}
src/main/java/zy/cloud/wms/manager/controller/ItemDetlController.java
New file
@@ -0,0 +1,128 @@
package zy.cloud.wms.manager.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
import zy.cloud.wms.manager.entity.ItemDetl;
import zy.cloud.wms.manager.service.ItemDetlService;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import zy.cloud.wms.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
public class ItemDetlController extends BaseController {
    @Autowired
    private ItemDetlService itemDetlService;
    @RequestMapping(value = "/itemDetl/{id}/auth")
    @ManagerAuth
    public R get(@PathVariable("id") String id) {
        return R.ok(itemDetlService.selectById(String.valueOf(id)));
    }
    @RequestMapping(value = "/itemDetl/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
        EntityWrapper<ItemDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        return R.ok(itemDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
            String val = String.valueOf(entry.getValue());
            if (val.contains(RANGE_TIME_LINK)){
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.like(entry.getKey(), val);
            }
        }
    }
    @RequestMapping(value = "/itemDetl/add/auth")
    @ManagerAuth
    public R add(ItemDetl itemDetl) {
        itemDetlService.insert(itemDetl);
        return R.ok();
    }
    @RequestMapping(value = "/itemDetl/update/auth")
    @ManagerAuth
    public R update(ItemDetl itemDetl){
        if (Cools.isEmpty(itemDetl) || null==itemDetl.getId()){
            return R.error();
        }
        itemDetlService.updateById(itemDetl);
        return R.ok();
    }
    @RequestMapping(value = "/itemDetl/delete/auth")
    @ManagerAuth
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            itemDetlService.deleteById(id);
        }
        return R.ok();
    }
    @RequestMapping(value = "/itemDetl/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
        EntityWrapper<ItemDetl> wrapper = new EntityWrapper<>();
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        Map<String, Object> map = excludeTrash(param.getJSONObject("itemDetl"));
        convert(map, wrapper);
        List<ItemDetl> list = itemDetlService.selectList(wrapper);
        return R.ok(exportSupport(list, fields));
    }
    @RequestMapping(value = "/itemDetlQuery/auth")
    @ManagerAuth
    public R query(String condition) {
        EntityWrapper<ItemDetl> wrapper = new EntityWrapper<>();
        wrapper.like("id", condition);
        Page<ItemDetl> page = itemDetlService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (ItemDetl itemDetl : page.getRecords()){
            Map<String, Object> map = new HashMap<>();
            map.put("id", itemDetl.getId());
            map.put("value", itemDetl.getId());
            result.add(map);
        }
        return R.ok(result);
    }
    @RequestMapping(value = "/itemDetl/check/column/auth")
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {
        Wrapper<ItemDetl> wrapper = new EntityWrapper<ItemDetl>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
        if (null != itemDetlService.selectOne(wrapper)){
            return R.parse(BaseRes.REPEAT).add(getComment(ItemDetl.class, String.valueOf(param.get("key"))));
        }
        return R.ok();
    }
    @RequestMapping("/itemDetl/getAll")
    public R getAll(){
        List<ItemDetl> itemDetls = itemDetlService.selectList(null);
        return R.ok().add(itemDetls);
    }
}
src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -200,7 +200,7 @@
    @RequestMapping("/docType/all/get")
    @ManagerAuth
    public R getDocTypeData() {
        List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("status", 1).eq("host_id", getHostId()).orderBy("create_time", false));
        List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("status", 1).eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",1));
        return R.ok().add(docTypes);
    }
src/main/java/zy/cloud/wms/manager/entity/ItemDetl.java
New file
Diff too large
src/main/java/zy/cloud/wms/manager/mapper/ItemDetlMapper.java
New file
@@ -0,0 +1,12 @@
package zy.cloud.wms.manager.mapper;
import zy.cloud.wms.manager.entity.ItemDetl;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ItemDetlMapper extends BaseMapper<ItemDetl> {
}
src/main/java/zy/cloud/wms/manager/service/ItemDetlService.java
New file
@@ -0,0 +1,8 @@
package zy.cloud.wms.manager.service;
import zy.cloud.wms.manager.entity.ItemDetl;
import com.baomidou.mybatisplus.service.IService;
public interface ItemDetlService extends IService<ItemDetl> {
}
src/main/java/zy/cloud/wms/manager/service/impl/ItemDetlServiceImpl.java
New file
@@ -0,0 +1,12 @@
package zy.cloud.wms.manager.service.impl;
import zy.cloud.wms.manager.mapper.ItemDetlMapper;
import zy.cloud.wms.manager.entity.ItemDetl;
import zy.cloud.wms.manager.service.ItemDetlService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("itemDetlService")
public class ItemDetlServiceImpl extends ServiceImpl<ItemDetlMapper, ItemDetl> implements ItemDetlService {
}
src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -1,6 +1,7 @@
package zy.cloud.wms.manager.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
@@ -12,6 +13,7 @@
import org.springframework.transaction.annotation.Transactional;
import zy.cloud.wms.common.model.MatnrDto;
import zy.cloud.wms.common.model.OrderStoDto;
import zy.cloud.wms.common.model.ReceiveStoDto;
import zy.cloud.wms.common.service.MainService;
import zy.cloud.wms.common.utils.VersionUtils;
import zy.cloud.wms.manager.entity.*;
@@ -54,6 +56,11 @@
    private CstmrService cstmrService;
    @Autowired
    private PakinService pakinService;
    @Autowired
    private ReceiveService receiveService;
    @Autowired
    private ReceiveDetlService receiveDetlService;
    @Override
    @Transactional
@@ -268,31 +275,50 @@
    @Override
    public R stockOutPreview(StockOutParam param, Long userId, Long hostId) {
        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
        if (order.getSettle() != 1) {
        Wrapper<Receive> wrapper = new EntityWrapper<Receive>()
                .eq("order_no", param.getOrderNo());
        if (hostId != null) {
            wrapper.eq("host_id", hostId);
        }
        Receive order_no = receiveService.selectOne(wrapper);
        if (order_no.getSettle() != 1){
            return R.error("此单据无法生成拣货单");
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId);
        if (Cools.isEmpty(orderDetls)) {
//        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
//        if (order.getSettle() != 1) {
//            return R.error("此单据无法生成拣货单");
//        }
        List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(order_no.getOrderNo(), hostId);
        if (Cools.isEmpty(receiveDetls)) {
            return R.error("此单据已失效,请联系管理员");
        }
        OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls);
        return R.ok().add(mainService.stockOutPreview(dto, hostId));
//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId);
//        if (Cools.isEmpty(orderDetls)) {
//            return R.error("此单据已失效,请联系管理员");
//        }
        ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(order_no.getOrderNo(), receiveDetls);
//        OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls);
        return R.ok().add(mainService.receiveStockOutPreview(receiveStoDto, hostId));
    }
    @Override
    public R stockOutCreate(StockOutParam param, Long userId, Long hostId) {
        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
        if (order.getSettle() != 1) {
        Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId);
//        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
        if (receive.getSettle() != 1) {
            return R.error("此单据无法生成拣货单");
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId);
        if (Cools.isEmpty(orderDetls)) {
        List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(param.getOrderNo(), hostId);
//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId);
        if (Cools.isEmpty(receiveDetls)) {
            return R.error("此单据已失效,请联系管理员");
        }
        OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls);
        ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(receive.getOrderNo(), receiveDetls);
//        OrderStoDto dto = new OrderStoDto().create(receive.getOrderNo(), receiveDetls);
        // 开始整理出库数据
        mainService.stockOutProcess(dto, hostId);
        mainService.receiveStockOutProcess(receiveStoDto,hostId);
        return R.ok("生成拣货单成功");
    }
@@ -433,6 +459,7 @@
                pakout.setUpdateTime(now);
                pakout.setUpdateBy(userId);
                pakout.setStatus(1);
                if (!pakoutService.insert(pakout)) {
                    throw new CoolException("生成拣货单失败");
                }
@@ -517,15 +544,17 @@
    @Override
    @Transactional
    public R initOrder(InitOrderParam param, Long userId, Long hostId) {
        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
        if (order != null) {
        Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>()
                .eq("order_no", param.getOrderNo()));
//        Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId);
        if (order_no != null) {
            return R.error("抱歉单号已存在,请修改单号");
        }
        Date now = new Date();
        Item item = itemService.selectByName(param.getItem());
        Cstmr cstmr = cstmrService.selectByName(param.getCstmr());
        // 新增订单表头
        order = new Order(
        order_no = new Receive(
                hostId,
                String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空]
                param.getOrderNo(),    // 订单编号
@@ -562,9 +591,34 @@
                now,    // 修改时间
                null    // 备注
        );
        if (!orderService.insert(order)) {
//        if (!orderService.insert(order)) {
//            throw new CoolException("保存订单表头失败!");
//        }
        if (!receiveService.insert(order_no)) {
            throw new CoolException("保存订单表头失败!");
        }
//        // 遍历商品数量并保存
//        for (MatnrDto dto : param.getList()){
//            Mat mat = matService.selectByMatnr(hostId, dto.getMatnr());
//            if (mat == null) {
//                log.error("{}商品不存在。", dto.getMatnr());
//                continue;
//            }
//            OrderDetl orderDetl = new OrderDetl();
//            orderDetl.setHostId(hostId);
//            orderDetl.setOrderId(order.getId());  // 订单内码
//            orderDetl.setAnfme(dto.getCount());         // 数量
//            orderDetl.setCreateBy(userId);
//            orderDetl.setCreateTime(now);
//            orderDetl.setUpdateBy(userId);
//            orderDetl.setUpdateTime(now);
//            orderDetl.setStatus(1);
//            VersionUtils.setOrderDetl(orderDetl, mat);
//            if (!orderDetlService.insert(orderDetl)) {
//                throw new CoolException("保存订单明细失败");
//            }
//        }
        // 遍历商品数量并保存
        for (MatnrDto dto : param.getList()){
            Mat mat = matService.selectByMatnr(hostId, dto.getMatnr());
@@ -572,17 +626,28 @@
                log.error("{}商品不存在。", dto.getMatnr());
                continue;
            }
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.setHostId(hostId);
            orderDetl.setOrderId(order.getId());  // 订单内码
            orderDetl.setAnfme(dto.getCount());         // 数量
            orderDetl.setCreateBy(userId);
            orderDetl.setCreateTime(now);
            orderDetl.setUpdateBy(userId);
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            VersionUtils.setOrderDetl(orderDetl, mat);
            if (!orderDetlService.insert(orderDetl)) {
            ReceiveDetl receiveDetl = new ReceiveDetl();
            receiveDetl.setHostId(hostId);
            receiveDetl.setOrderId(order_no.getId());
            receiveDetl.setAnfme(dto.getCount());
            receiveDetl.setCreateTime(now);
            receiveDetl.setCreateBy(userId);
            receiveDetl.setUpdateBy(userId);
            receiveDetl.setUpdateTime(now);
            receiveDetl.setStatus(1);
            receiveDetl.setMatnr(mat.getMatnr());
            receiveDetl.setMaktx(mat.getMaktx());
            receiveDetl.setName(mat.getName());
            receiveDetl.setSpecs(mat.getSpecs());
            receiveDetl.setModel(mat.getModel());
            receiveDetl.setBatch(mat.getBatch());
            receiveDetl.setUnit(mat.getUnit());
            receiveDetl.setBarcode(mat.getBarcode());
            receiveDetl.setItemNum(mat.getItemNum());
            receiveDetl.setCount(mat.getCount());
            receiveDetl.setUnitPrice(mat.getPrice());
            receiveDetl.setWeight(mat.getWeight());
            if (!receiveDetlService.insert(receiveDetl)) {
                throw new CoolException("保存订单明细失败");
            }
        }
src/main/resources/mapper/ItemDetlMapper.xml
New file
@@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="zy.cloud.wms.manager.mapper.ItemDetlMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="zy.cloud.wms.manager.entity.ItemDetl">
        <result column="id" property="id" />
        <result column="start_day" property="startDay" />
        <result column="end_day" property="endDay" />
        <result column="node1_name" property="node1Name" />
        <result column="node1_deadline" property="node1Deadline" />
        <result column="node1_real_deadline" property="node1RealDeadline" />
        <result column="node1_extra_day" property="node1ExtraDay" />
        <result column="node2_name" property="node2Name" />
        <result column="node2_deadline" property="node2Deadline" />
        <result column="node2_real_deadline" property="node2RealDeadline" />
        <result column="node2_extra_day" property="node2ExtraDay" />
        <result column="node3_name" property="node3Name" />
        <result column="node3_deadline" property="node3Deadline" />
        <result column="node3_real_deadline" property="node3RealDeadline" />
        <result column="node3_extra_day" property="node3ExtraDay" />
        <result column="node4_name" property="node4Name" />
        <result column="node4_deadline" property="node4Deadline" />
        <result column="node4_real_deadline" property="node4RealDeadline" />
        <result column="node4_extra_day" property="node4ExtraDay" />
        <result column="node5_name" property="node5Name" />
        <result column="node5_deadline" property="node5Deadline" />
        <result column="node5_real_deadline" property="node5RealDeadline" />
        <result column="node5_extra_day" property="node5ExtraDay" />
        <result column="node6_name" property="node6Name" />
        <result column="node6_deadline" property="node6Deadline" />
        <result column="node6_real_deadline" property="node6RealDeadline" />
        <result column="node6_extra_day" property="node6ExtraDay" />
        <result column="node7_name" property="node7Name" />
        <result column="node7_deadline" property="node7Deadline" />
        <result column="node7_real_deadline" property="node7RealDeadline" />
        <result column="node7_extra_day" property="node7ExtraDay" />
        <result column="node8_name" property="node8Name" />
        <result column="node8_deadline" property="node8Deadline" />
        <result column="node8_real_deadline" property="node8RealDeadline" />
        <result column="node8_extra_day" property="node8ExtraDay" />
        <result column="node9_name" property="node9Name" />
        <result column="node9_deadline" property="node9Deadline" />
        <result column="node9_real_deadline" property="node9RealDeadline" />
        <result column="node9_extra_day" property="node9ExtraDay" />
        <result column="node10_name" property="node10Name" />
        <result column="node10_deadline" property="node10Deadline" />
        <result column="node10_real_deadline" property="node10RealDeadline" />
        <result column="node10_extra_day" property="node10ExtraDay" />
        <result column="node11_name" property="node11Name" />
        <result column="node11_deadline" property="node11Deadline" />
        <result column="node11_real_deadline" property="node11RealDeadline" />
        <result column="node11_extra_day" property="node11ExtraDay" />
        <result column="node12_name" property="node12Name" />
        <result column="node12_deadline" property="node12Deadline" />
        <result column="node12_real_deadline" property="node12RealDeadline" />
        <result column="node12_extra_day" property="node12ExtraDay" />
        <result column="node13_name" property="node13Name" />
        <result column="node13_deadline" property="node13Deadline" />
        <result column="node13_real_deadline" property="node13RealDeadline" />
        <result column="node13_extra_day" property="node13ExtraDay" />
        <result column="node14_name" property="node14Name" />
        <result column="node14_deadline" property="node14Deadline" />
        <result column="node14_real_deadline" property="node14RealDeadline" />
        <result column="node14_extra_day" property="node14ExtraDay" />
        <result column="node15_name" property="node15Name" />
        <result column="node15_deadline" property="node15Deadline" />
        <result column="node15_real_deadline" property="node15RealDeadline" />
        <result column="node15_extra_day" property="node15ExtraDay" />
        <result column="node16_name" property="node16Name" />
        <result column="node16_deadline" property="node16Deadline" />
        <result column="node16_real_deadline" property="node16RealDeadline" />
        <result column="node16_extra_day" property="node16ExtraDay" />
        <result column="node17_name" property="node17Name" />
        <result column="node17_deadline" property="node17Deadline" />
        <result column="node17_real_deadline" property="node17RealDeadline" />
        <result column="node17_extra_day" property="node17ExtraDay" />
        <result column="node18_name" property="node18Name" />
        <result column="node18_deadline" property="node18Deadline" />
        <result column="node18_real_deadline" property="node18RealDeadline" />
        <result column="node18_extra_day" property="node18ExtraDay" />
        <result column="node19_name" property="node19Name" />
        <result column="node19_deadline" property="node19Deadline" />
        <result column="node19_real_deadline" property="node19RealDeadline" />
        <result column="node19_extra_day" property="node19ExtraDay" />
        <result column="node20_name" property="node20Name" />
        <result column="node20_deadline" property="node20Deadline" />
        <result column="node20_real_deadline" property="node20RealDeadline" />
        <result column="node20_extra_day" property="node20ExtraDay" />
        <result column="node21_name" property="node21Name" />
        <result column="node21_deadline" property="node21Deadline" />
        <result column="node21_real_deadline" property="node21RealDeadline" />
        <result column="node21_extra_day" property="node21ExtraDay" />
        <result column="node22_name" property="node22Name" />
        <result column="node22_deadline" property="node22Deadline" />
        <result column="node22_real_deadline" property="node22RealDeadline" />
        <result column="node22_extra_day" property="node22ExtraDay" />
        <result column="node23_name" property="node23Name" />
        <result column="node23_deadline" property="node23Deadline" />
        <result column="node23_real_deadline" property="node23RealDeadline" />
        <result column="node23_extra_day" property="node23ExtraDay" />
        <result column="node24_name" property="node24Name" />
        <result column="node24_deadline" property="node24Deadline" />
        <result column="node24_real_deadline" property="node24RealDeadline" />
        <result column="node24_extra_day" property="node24ExtraDay" />
        <result column="node25_name" property="node25Name" />
        <result column="node25_deadline" property="node25Deadline" />
        <result column="node25_real_deadline" property="node25RealDeadline" />
        <result column="node25_extra_day" property="node25ExtraDay" />
        <result column="node26_name" property="node26Name" />
        <result column="node26_deadline" property="node26Deadline" />
        <result column="node26_real_deadline" property="node26RealDeadline" />
        <result column="node26_extra_day" property="node26ExtraDay" />
        <result column="node27_name" property="node27Name" />
        <result column="node27_deadline" property="node27Deadline" />
        <result column="node27_real_deadline" property="node27RealDeadline" />
        <result column="node27_extra_day" property="node27ExtraDay" />
        <result column="node28_name" property="node28Name" />
        <result column="node28_deadline" property="node28Deadline" />
        <result column="node28_real_deadline" property="node28RealDeadline" />
        <result column="node28_extra_day" property="node28ExtraDay" />
        <result column="node29_name" property="node29Name" />
        <result column="node29_deadline" property="node29Deadline" />
        <result column="node29_real_deadline" property="node29RealDeadline" />
        <result column="node29_extra_day" property="node29ExtraDay" />
        <result column="node30_name" property="node30Name" />
        <result column="node30_deadline" property="node30Deadline" />
        <result column="node30_real_deadline" property="node30RealDeadline" />
        <result column="node30_extra_day" property="node30ExtraDay" />
        <result column="node31_name" property="node31Name" />
        <result column="node31_deadline" property="node31Deadline" />
        <result column="node31_real_deadline" property="node31RealDeadline" />
        <result column="node31_extra_day" property="node31ExtraDay" />
        <result column="node32_name" property="node32Name" />
        <result column="node32_deadline" property="node32Deadline" />
        <result column="node32_real_deadline" property="node32RealDeadline" />
        <result column="node32_extra_day" property="node32ExtraDay" />
        <result column="node33_name" property="node33Name" />
        <result column="node33_deadline" property="node33Deadline" />
        <result column="node33_real_deadline" property="node33RealDeadline" />
        <result column="node33_extra_day" property="node33ExtraDay" />
        <result column="node34_name" property="node34Name" />
        <result column="node34_deadline" property="node34Deadline" />
        <result column="node34_real_deadline" property="node34RealDeadline" />
        <result column="node34_extra_day" property="node34ExtraDay" />
        <result column="node35_name" property="node35Name" />
        <result column="node35_deadline" property="node35Deadline" />
        <result column="node35_real_deadline" property="node35RealDeadline" />
        <result column="node35_extra_day" property="node35ExtraDay" />
        <result column="node36_name" property="node36Name" />
        <result column="node36_deadline" property="node36Deadline" />
        <result column="node36_real_deadline" property="node36RealDeadline" />
        <result column="node36_extra_day" property="node36ExtraDay" />
        <result column="node37_name" property="node37Name" />
        <result column="node37_deadline" property="node37Deadline" />
        <result column="node37_real_deadline" property="node37RealDeadline" />
        <result column="node37_extra_day" property="node37ExtraDay" />
        <result column="node38_name" property="node38Name" />
        <result column="node38_deadline" property="node38Deadline" />
        <result column="node38_real_deadline" property="node38RealDeadline" />
        <result column="node38_extra_day" property="node38ExtraDay" />
        <result column="node39_name" property="node39Name" />
        <result column="node39_deadline" property="node39Deadline" />
        <result column="node39_real_deadline" property="node39RealDeadline" />
        <result column="node39_extra_day" property="node39ExtraDay" />
        <result column="node40_name" property="node40Name" />
        <result column="node40_deadline" property="node40Deadline" />
        <result column="node40_real_deadline" property="node40RealDeadline" />
        <result column="node40_extra_day" property="node40ExtraDay" />
        <result column="node41_name" property="node41Name" />
        <result column="node41_deadline" property="node41Deadline" />
        <result column="node41_real_deadline" property="node41RealDeadline" />
        <result column="node41_extra_day" property="node41ExtraDay" />
        <result column="node42_name" property="node42Name" />
        <result column="node42_deadline" property="node42Deadline" />
        <result column="node42_real_deadline" property="node42RealDeadline" />
        <result column="node42_extra_day" property="node42ExtraDay" />
        <result column="node43_name" property="node43Name" />
        <result column="node43_deadline" property="node43Deadline" />
        <result column="node43_real_deadline" property="node43RealDeadline" />
        <result column="node43_extra_day" property="node43ExtraDay" />
        <result column="node44_name" property="node44Name" />
        <result column="node44_deadline" property="node44Deadline" />
        <result column="node44_real_deadline" property="node44RealDeadline" />
        <result column="node44_extra_day" property="node44ExtraDay" />
        <result column="node45_name" property="node45Name" />
        <result column="node45_deadline" property="node45Deadline" />
        <result column="node45_real_deadline" property="node45RealDeadline" />
        <result column="node45_extra_day" property="node45ExtraDay" />
        <result column="node46_name" property="node46Name" />
        <result column="node46_deadline" property="node46Deadline" />
        <result column="node46_real_deadline" property="node46RealDeadline" />
        <result column="node46_extra_day" property="node46ExtraDay" />
        <result column="node47_name" property="node47Name" />
        <result column="node47_deadline" property="node47Deadline" />
        <result column="node47_real_deadline" property="node47RealDeadline" />
        <result column="node47_extra_day" property="node47ExtraDay" />
        <result column="node48_name" property="node48Name" />
        <result column="node48_deadline" property="node48Deadline" />
        <result column="node48_real_deadline" property="node48RealDeadline" />
        <result column="node48_extra_day" property="node48ExtraDay" />
        <result column="node49_name" property="node49Name" />
        <result column="node49_deadline" property="node49Deadline" />
        <result column="node49_real_deadline" property="node49RealDeadline" />
        <result column="node49_extra_day" property="node49ExtraDay" />
        <result column="node50_name" property="node50Name" />
        <result column="node50_deadline" property="node50Deadline" />
        <result column="node50_real_deadline" property="node50RealDeadline" />
        <result column="node50_extra_day" property="node50ExtraDay" />
    </resultMap>
</mapper>
src/main/resources/mapper/OrderMapper.xml
@@ -44,7 +44,7 @@
    </resultMap>
    <update id="updateSettle">
        update man_order set settle = #{settle} where 1=1 and order_no = #{orderNo} and host_id = #{hostId}
        update man_receive set settle = #{settle} where 1=1 and order_no = #{orderNo} and host_id = #{hostId}
    </update>
    <select id="getPage" resultMap="BaseResultMap">
src/main/resources/mapper/ReceiveDetlMapper.xml
@@ -33,8 +33,8 @@
    <select id="selectByOrderNo" resultMap="BaseResultMap">
        select
        mod.*
        from man_order_detl mod
        left join man_order mo on mo.id = mod.order_id
        from man_receive_detl mod
        left join man_receive mo on mo.id = mod.order_id
        where 1=1
        and mo.order_no = #{orderNo}
        and mo.host_id = #{hostId}
src/main/webapp/static/js/itemDetl/itemDetl.js
New file
@@ -0,0 +1,848 @@
var pageCurr;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    // 数据渲染
    tableIns = table.render({
        elem: '#itemDetl',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/itemDetl/list/auth',
        page: true,
        limit: 16,
        limits: [16, 30, 50, 100, 200, 500],
        toolbar: '#toolbar',
        cellMinWidth: 50,
        cols: [[
            {type: 'checkbox'}
            ,{field: 'id', align: 'center',title: 'ID'}
            ,{field: 'startDay$', align: 'center',title: '项目启动日期'}
            ,{field: 'endDay$', align: 'center',title: '项目结束日期'}
            // ,{field: 'node1Name', align: 'center',title: '节点1名称'}
            // ,{field: 'node1Deadline$', align: 'center',title: '节点1截止日期'}
            // ,{field: 'node1RealDeadline$', align: 'center',title: '节点1完工日期'}
            // ,{field: 'node1ExtraDay', align: 'center',title: '节点1超出日期'}
            // ,{field: 'node2Name', align: 'center',title: '节点2名称'}
            // ,{field: 'node2Deadline$', align: 'center',title: '节点2截止日期'}
            // ,{field: 'node2RealDeadline$', align: 'center',title: '节点2完工日期'}
            // ,{field: 'node2ExtraDay', align: 'center',title: '节点2超出日期'}
            // ,{field: 'node3Name', align: 'center',title: '节点3名称'}
            // ,{field: 'node3Deadline$', align: 'center',title: '节点3截止日期'}
            // ,{field: 'node3RealDeadline$', align: 'center',title: '节点3完工日期'}
            // ,{field: 'node3ExtraDay', align: 'center',title: '节点3超出日期'}
            // ,{field: 'node4Name', align: 'center',title: '节点4名称'}
            // ,{field: 'node4Deadline$', align: 'center',title: '节点4截止日期'}
            // ,{field: 'node4RealDeadline$', align: 'center',title: '节点4完工日期'}
            // ,{field: 'node4ExtraDay', align: 'center',title: '节点4超出日期'}
            // ,{field: 'node5Name', align: 'center',title: '节点5名称'}
            // ,{field: 'node5Deadline$', align: 'center',title: '节点5截止日期'}
            // ,{field: 'node5RealDeadline$', align: 'center',title: '节点5完工日期'}
            // ,{field: 'node5ExtraDay', align: 'center',title: '节点5超出日期'}
            // ,{field: 'node6Name', align: 'center',title: '节点6名称'}
            // ,{field: 'node6Deadline$', align: 'center',title: '节点6截止日期'}
            // ,{field: 'node6RealDeadline$', align: 'center',title: '节点6完工日期'}
            // ,{field: 'node6ExtraDay', align: 'center',title: '节点6超出日期'}
            // ,{field: 'node7Name', align: 'center',title: '节点7名称'}
            // ,{field: 'node7Deadline$', align: 'center',title: '节点7截止日期'}
            // ,{field: 'node7RealDeadline$', align: 'center',title: '节点7完工日期'}
            // ,{field: 'node7ExtraDay', align: 'center',title: '节点7超出日期'}
            // ,{field: 'node8Name', align: 'center',title: '节点8名称'}
            // ,{field: 'node8Deadline$', align: 'center',title: '节点8截止日期'}
            // ,{field: 'node8RealDeadline$', align: 'center',title: '节点8完工日期'}
            // ,{field: 'node8ExtraDay', align: 'center',title: '节点8超出日期'}
            // ,{field: 'node9Name', align: 'center',title: '节点9名称'}
            // ,{field: 'node9Deadline$', align: 'center',title: '节点9截止日期'}
            // ,{field: 'node9RealDeadline$', align: 'center',title: '节点9完工日期'}
            // ,{field: 'node9ExtraDay', align: 'center',title: '节点9超出日期'}
            // ,{field: 'node10Name', align: 'center',title: '节点10名称'}
            // ,{field: 'node10Deadline$', align: 'center',title: '节点10截止日期'}
            // ,{field: 'node10RealDeadline$', align: 'center',title: '节点10完工日期'}
            // ,{field: 'node10ExtraDay', align: 'center',title: '节点10超出日期'}
            // ,{field: 'node11Name', align: 'center',title: '节点11名称'}
            // ,{field: 'node11Deadline$', align: 'center',title: '节点11截止日期'}
            // ,{field: 'node11RealDeadline$', align: 'center',title: '节点11完工日期'}
            // ,{field: 'node11ExtraDay', align: 'center',title: '节点11超出日期'}
            // ,{field: 'node12Name', align: 'center',title: '节点12名称'}
            // ,{field: 'node12Deadline$', align: 'center',title: '节点12截止日期'}
            // ,{field: 'node12RealDeadline$', align: 'center',title: '节点12完工日期'}
            // ,{field: 'node12ExtraDay', align: 'center',title: '节点12超出日期'}
            // ,{field: 'node13Name', align: 'center',title: '节点13名称'}
            // ,{field: 'node13Deadline$', align: 'center',title: '节点13截止日期'}
            // ,{field: 'node13RealDeadline$', align: 'center',title: '节点13完工日期'}
            // ,{field: 'node13ExtraDay', align: 'center',title: '节点13超出日期'}
            // ,{field: 'node14Name', align: 'center',title: '节点14名称'}
            // ,{field: 'node14Deadline$', align: 'center',title: '节点14截止日期'}
            // ,{field: 'node14RealDeadline$', align: 'center',title: '节点14完工日期'}
            // ,{field: 'node14ExtraDay', align: 'center',title: '节点14超出日期'}
            // ,{field: 'node15Name', align: 'center',title: '节点15名称'}
            // ,{field: 'node15Deadline$', align: 'center',title: '节点15截止日期'}
            // ,{field: 'node15RealDeadline$', align: 'center',title: '节点15完工日期'}
            // ,{field: 'node15ExtraDay', align: 'center',title: '节点15超出日期'}
            // ,{field: 'node16Name', align: 'center',title: '节点16名称'}
            // ,{field: 'node16Deadline$', align: 'center',title: '节点16截止日期'}
            // ,{field: 'node16RealDeadline$', align: 'center',title: '节点16完工日期'}
            // ,{field: 'node16ExtraDay', align: 'center',title: '节点16超出日期'}
            // ,{field: 'node17Name', align: 'center',title: '节点17名称'}
            // ,{field: 'node17Deadline$', align: 'center',title: '节点17截止日期'}
            // ,{field: 'node17RealDeadline$', align: 'center',title: '节点17完工日期'}
            // ,{field: 'node17ExtraDay', align: 'center',title: '节点17超出日期'}
            // ,{field: 'node18Name', align: 'center',title: '节点18名称'}
            // ,{field: 'node18Deadline$', align: 'center',title: '节点18截止日期'}
            // ,{field: 'node18RealDeadline$', align: 'center',title: '节点18完工日期'}
            // ,{field: 'node18ExtraDay', align: 'center',title: '节点18超出日期'}
            // ,{field: 'node19Name', align: 'center',title: '节点19名称'}
            // ,{field: 'node19Deadline$', align: 'center',title: '节点19截止日期'}
            // ,{field: 'node19RealDeadline$', align: 'center',title: '节点19完工日期'}
            // ,{field: 'node19ExtraDay', align: 'center',title: '节点19超出日期'}
            // ,{field: 'node20Name', align: 'center',title: '节点20名称'}
            // ,{field: 'node20Deadline$', align: 'center',title: '节点20截止日期'}
            // ,{field: 'node20RealDeadline$', align: 'center',title: '节点20完工日期'}
            // ,{field: 'node20ExtraDay', align: 'center',title: '节点20超出日期'}
            // ,{field: 'node21Name', align: 'center',title: '节点21名称'}
            // ,{field: 'node21Deadline$', align: 'center',title: '节点21截止日期'}
            // ,{field: 'node21RealDeadline$', align: 'center',title: '节点21完工日期'}
            // ,{field: 'node21ExtraDay', align: 'center',title: '节点21超出日期'}
            // ,{field: 'node22Name', align: 'center',title: '节点22名称'}
            // ,{field: 'node22Deadline$', align: 'center',title: '节点22截止日期'}
            // ,{field: 'node22RealDeadline$', align: 'center',title: '节点22完工日期'}
            // ,{field: 'node22ExtraDay', align: 'center',title: '节点22超出日期'}
            // ,{field: 'node23Name', align: 'center',title: '节点23名称'}
            // ,{field: 'node23Deadline$', align: 'center',title: '节点23截止日期'}
            // ,{field: 'node23RealDeadline$', align: 'center',title: '节点23完工日期'}
            // ,{field: 'node23ExtraDay', align: 'center',title: '节点23超出日期'}
            // ,{field: 'node24Name', align: 'center',title: '节点24名称'}
            // ,{field: 'node24Deadline$', align: 'center',title: '节点24截止日期'}
            // ,{field: 'node24RealDeadline$', align: 'center',title: '节点24完工日期'}
            // ,{field: 'node24ExtraDay', align: 'center',title: '节点24超出日期'}
            // ,{field: 'node25Name', align: 'center',title: '节点25名称'}
            // ,{field: 'node25Deadline$', align: 'center',title: '节点25截止日期'}
            // ,{field: 'node25RealDeadline$', align: 'center',title: '节点25完工日期'}
            // ,{field: 'node25ExtraDay', align: 'center',title: '节点25超出日期'}
            // ,{field: 'node26Name', align: 'center',title: '节点26名称'}
            // ,{field: 'node26Deadline$', align: 'center',title: '节点26截止日期'}
            // ,{field: 'node26RealDeadline$', align: 'center',title: '节点26完工日期'}
            // ,{field: 'node26ExtraDay', align: 'center',title: '节点26超出日期'}
            // ,{field: 'node27Name', align: 'center',title: '节点27名称'}
            // ,{field: 'node27Deadline$', align: 'center',title: '节点27截止日期'}
            // ,{field: 'node27RealDeadline$', align: 'center',title: '节点27完工日期'}
            // ,{field: 'node27ExtraDay', align: 'center',title: '节点27超出日期'}
            // ,{field: 'node28Name', align: 'center',title: '节点28名称'}
            // ,{field: 'node28Deadline$', align: 'center',title: '节点28截止日期'}
            // ,{field: 'node28RealDeadline$', align: 'center',title: '节点28完工日期'}
            // ,{field: 'node28ExtraDay', align: 'center',title: '节点28超出日期'}
            // ,{field: 'node29Name', align: 'center',title: '节点29名称'}
            // ,{field: 'node29Deadline$', align: 'center',title: '节点29截止日期'}
            // ,{field: 'node29RealDeadline$', align: 'center',title: '节点29完工日期'}
            // ,{field: 'node29ExtraDay', align: 'center',title: '节点29超出日期'}
            // ,{field: 'node30Name', align: 'center',title: '节点30名称'}
            // ,{field: 'node30Deadline$', align: 'center',title: '节点30截止日期'}
            // ,{field: 'node30RealDeadline$', align: 'center',title: '节点30完工日期'}
            // ,{field: 'node30ExtraDay', align: 'center',title: '节点30超出日期'}
            // ,{field: 'node31Name', align: 'center',title: '节点31名称'}
            // ,{field: 'node31Deadline$', align: 'center',title: '节点31截止日期'}
            // ,{field: 'node31RealDeadline$', align: 'center',title: '节点31完工日期'}
            // ,{field: 'node31ExtraDay', align: 'center',title: '节点31超出日期'}
            // ,{field: 'node32Name', align: 'center',title: '节点32名称'}
            // ,{field: 'node32Deadline$', align: 'center',title: '节点32截止日期'}
            // ,{field: 'node32RealDeadline$', align: 'center',title: '节点32完工日期'}
            // ,{field: 'node32ExtraDay', align: 'center',title: '节点32超出日期'}
            // ,{field: 'node33Name', align: 'center',title: '节点33名称'}
            // ,{field: 'node33Deadline$', align: 'center',title: '节点33截止日期'}
            // ,{field: 'node33RealDeadline$', align: 'center',title: '节点33完工日期'}
            // ,{field: 'node33ExtraDay', align: 'center',title: '节点33超出日期'}
            // ,{field: 'node34Name', align: 'center',title: '节点34名称'}
            // ,{field: 'node34Deadline$', align: 'center',title: '节点34截止日期'}
            // ,{field: 'node34RealDeadline$', align: 'center',title: '节点34完工日期'}
            // ,{field: 'node34ExtraDay', align: 'center',title: '节点34超出日期'}
            // ,{field: 'node35Name', align: 'center',title: '节点35名称'}
            // ,{field: 'node35Deadline$', align: 'center',title: '节点35截止日期'}
            // ,{field: 'node35RealDeadline$', align: 'center',title: '节点35完工日期'}
            // ,{field: 'node35ExtraDay', align: 'center',title: '节点35超出日期'}
            // ,{field: 'node36Name', align: 'center',title: '节点36名称'}
            // ,{field: 'node36Deadline$', align: 'center',title: '节点36截止日期'}
            // ,{field: 'node36RealDeadline$', align: 'center',title: '节点36完工日期'}
            // ,{field: 'node36ExtraDay', align: 'center',title: '节点36超出日期'}
            // ,{field: 'node37Name', align: 'center',title: '节点37名称'}
            // ,{field: 'node37Deadline$', align: 'center',title: '节点37截止日期'}
            // ,{field: 'node37RealDeadline$', align: 'center',title: '节点37完工日期'}
            // ,{field: 'node37ExtraDay', align: 'center',title: '节点37超出日期'}
            // ,{field: 'node38Name', align: 'center',title: '节点38名称'}
            // ,{field: 'node38Deadline$', align: 'center',title: '节点38截止日期'}
            // ,{field: 'node38RealDeadline$', align: 'center',title: '节点38完工日期'}
            // ,{field: 'node38ExtraDay', align: 'center',title: '节点38超出日期'}
            // ,{field: 'node39Name', align: 'center',title: '节点39名称'}
            // ,{field: 'node39Deadline$', align: 'center',title: '节点39截止日期'}
            // ,{field: 'node39RealDeadline$', align: 'center',title: '节点39完工日期'}
            // ,{field: 'node39ExtraDay', align: 'center',title: '节点39超出日期'}
            // ,{field: 'node40Name', align: 'center',title: '节点40名称'}
            // ,{field: 'node40Deadline$', align: 'center',title: '节点40截止日期'}
            // ,{field: 'node40RealDeadline$', align: 'center',title: '节点40完工日期'}
            // ,{field: 'node40ExtraDay', align: 'center',title: '节点40超出日期'}
            // ,{field: 'node41Name', align: 'center',title: '节点41名称'}
            // ,{field: 'node41Deadline$', align: 'center',title: '节点41截止日期'}
            // ,{field: 'node41RealDeadline$', align: 'center',title: '节点41完工日期'}
            // ,{field: 'node41ExtraDay', align: 'center',title: '节点41超出日期'}
            // ,{field: 'node42Name', align: 'center',title: '节点42名称'}
            // ,{field: 'node42Deadline$', align: 'center',title: '节点42截止日期'}
            // ,{field: 'node42RealDeadline$', align: 'center',title: '节点42完工日期'}
            // ,{field: 'node42ExtraDay', align: 'center',title: '节点42超出日期'}
            // ,{field: 'node43Name', align: 'center',title: '节点43名称'}
            // ,{field: 'node43Deadline$', align: 'center',title: '节点43截止日期'}
            // ,{field: 'node43RealDeadline$', align: 'center',title: '节点43完工日期'}
            // ,{field: 'node43ExtraDay', align: 'center',title: '节点43超出日期'}
            // ,{field: 'node44Name', align: 'center',title: '节点44名称'}
            // ,{field: 'node44Deadline$', align: 'center',title: '节点44截止日期'}
            // ,{field: 'node44RealDeadline$', align: 'center',title: '节点44完工日期'}
            // ,{field: 'node44ExtraDay', align: 'center',title: '节点44超出日期'}
            // ,{field: 'node45Name', align: 'center',title: '节点45名称'}
            // ,{field: 'node45Deadline$', align: 'center',title: '节点45截止日期'}
            // ,{field: 'node45RealDeadline$', align: 'center',title: '节点45完工日期'}
            // ,{field: 'node45ExtraDay', align: 'center',title: '节点45超出日期'}
            // ,{field: 'node46Name', align: 'center',title: '节点46名称'}
            // ,{field: 'node46Deadline$', align: 'center',title: '节点46截止日期'}
            // ,{field: 'node46RealDeadline$', align: 'center',title: '节点46完工日期'}
            // ,{field: 'node46ExtraDay', align: 'center',title: '节点46超出日期'}
            // ,{field: 'node47Name', align: 'center',title: '节点47名称'}
            // ,{field: 'node47Deadline$', align: 'center',title: '节点47截止日期'}
            // ,{field: 'node47RealDeadline$', align: 'center',title: '节点47完工日期'}
            // ,{field: 'node47ExtraDay', align: 'center',title: '节点47超出日期'}
            // ,{field: 'node48Name', align: 'center',title: '节点48名称'}
            // ,{field: 'node48Deadline$', align: 'center',title: '节点48截止日期'}
            // ,{field: 'node48RealDeadline$', align: 'center',title: '节点48完工日期'}
            // ,{field: 'node48ExtraDay', align: 'center',title: '节点48超出日期'}
            // ,{field: 'node49Name', align: 'center',title: '节点49名称'}
            // ,{field: 'node49Deadline$', align: 'center',title: '节点49截止日期'}
            // ,{field: 'node49RealDeadline$', align: 'center',title: '节点49完工日期'}
            // ,{field: 'node49ExtraDay', align: 'center',title: '节点49超出日期'}
            // ,{field: 'node50Name', align: 'center',title: '节点50名称'}
            // ,{field: 'node50Deadline$', align: 'center',title: '节点50截止日期'}
            // ,{field: 'node50RealDeadline$', align: 'center',title: '节点50完工日期'}
            // ,{field: 'node50ExtraDay', align: 'center',title: '节点50超出日期'}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150}
        ]],
        request: {
            pageName: 'curr',
            pageSize: 'limit'
        },
        parseData: function (res) {
            return {
                'code': res.code,
                'msg': res.msg,
                'count': res.data.total,
                'data': res.data.records
            }
        },
        response: {
            statusCode: 200
        },
        done: function(res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;
            limit();
        }
    });
    // 监听排序事件
    table.on('sort(itemDetl)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        searchData['orderByField'] = obj.field;
        searchData['orderByType'] = obj.type;
        tableIns.reload({
            where: searchData,
            page: {curr: 1}
        });
    });
    // 监听头工具栏事件
    table.on('toolbar(itemDetl)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
                showEditModel();
                break;
            case 'deleteData':
               if (checkStatus.length === 0) {
                   layer.msg('请选择要删除的数据', {icon: 2});
                   return;
               }
               var ids = checkStatus.map(function (d) {
                   return d.id;
               });
               del(ids);
               break;
            case 'exportData':
                layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
                    var fields=[];
                    obj.config.cols[0].map(function (col) {
                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                            titles.push(col.title);
                            fields.push(col.field);
                        }
                    });
                    var exportData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                        exportData[this.name] = this.value;
                    });
                    var param = {
                        'itemDetl': exportData,
                        'fields': fields
                    };
                    $.ajax({
                        url: baseUrl+"/itemDetl/export/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(param),
                        dataType:'json',
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            layer.closeAll();
                            if (res.code === 200) {
                                table.exportFile(titles,res.data,'xls');
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                            } else {
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    });
                });
                break;
        }
    });
    // 监听行工具事件
    table.on('tool(itemDetl)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'edit':
                showEditModel(data);
                break;
            case "del":
                var ids = [data.id];
                del(ids);
                break;
        }
    });
    /* 弹窗 - 新增、修改 */
    function showEditModel(mData) {
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '订单状态',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender();
                form.val('detail', mData);
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/itemDetl/"+(mData?'update':'add')+"/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        method: 'POST',
                        success: function (res) {
                            layer.close(loadIndex);
                            if (res.code === 200){
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload();
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                    return false;
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
            }
        });
    }
    /* 删除 */
    function del(ids) {
        layer.confirm('确定要删除选中数据吗?', {
            skin: 'layui-layer-admin',
            shade: .1
        }, function (i) {
            layer.close(i);
            var loadIndex = layer.load(2);
            $.ajax({
                url: baseUrl+"/itemDetl/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {ids: ids},
                method: 'POST',
                success: function (res) {
                    layer.close(loadIndex);
                    if (res.code === 200){
                        layer.msg(res.msg, {icon: 1});
                        tableReload();
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg, {icon: 2});
                    }
                }
            })
        });
    }
    // 搜索
    form.on('submit(search)', function (data) {
        pageCurr = 1;
        tableReload(false);
    });
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        clearFormVal($('#search-box'));
        tableReload(false);
    });
    // 时间选择器
    function layDateRender() {
            layDate.render({
        elem: '#startDay\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#endDay\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node1Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node1RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node2Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node2RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node3Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node3RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node4Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node4RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node5Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node5RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node6Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node6RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node7Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node7RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node8Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node8RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node9Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node9RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node10Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node10RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node11Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node11RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node12Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node12RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node13Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node13RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node14Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node14RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node15Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node15RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node16Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node16RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node17Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node17RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node18Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node18RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node19Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node19RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node20Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node20RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node21Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node21RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node22Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node22RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node23Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node23RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node24Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node24RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node25Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node25RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node26Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node26RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node27Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node27RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node28Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node28RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node29Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node29RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node30Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node30RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node31Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node31RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node32Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node32RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node33Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node33RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node34Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node34RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node35Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node35RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node36Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node36RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node37Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node37RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node38Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node38RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node39Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node39RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node40Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node40RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node41Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node41RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node42Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node42RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node43Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node43RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node44Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node44RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node45Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node45RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node46Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node46RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node47Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node47RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node48Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node48RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node49Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node49RealDeadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node50Deadline\\$',
        type: 'datetime'
    });
        layDate.render({
        elem: '#node50RealDeadline\\$',
        type: 'datetime'
    });
    }
    layDateRender();
});
// 关闭动作
$(document).on('click','#data-detail-close', function () {
    parent.layer.closeAll();
});
function tableReload(child) {
    var searchData = {};
    $.each($('#search-box [name]').serializeArray(), function() {
        searchData[this.name] = this.value;
    });
    tableIns.reload({
        where: searchData,
        page: {curr: pageCurr}
     });
}
src/main/webapp/views/itemDetl/itemDetl.html
New file
@@ -0,0 +1,1288 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/common.css" media="all">
</head>
<body>
<!-- 搜索栏 -->
<div id="search-box" class="layui-form layui-card-header">
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">
        </div>
    </div>
    <!-- 待添加 -->
    <div id="data-search-btn" class="layui-btn-container layui-form-item">
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
    </div>
</div>
<!-- 表格 -->
<div class="layui-form">
    <table class="layui-hide" id="itemDetl" lay-filter="itemDetl"></table>
</div>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>
        <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">删除</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button>
    </div>
</script>
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></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/itemDetl/itemDetl.js" charset="utf-8"></script>
</body>
<!-- 表单弹窗 -->
<script type="text/html" id="editDialog">
    <form id="detail" lay-filter="detail" class="layui-form admin-form">
        <input name="id" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md12">
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">ID: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="id" placeholder="请输入ID" lay-vertype="tips" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">项目启动日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="startDay" id="startDay$" placeholder="请输入项目启动日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">项目结束日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="endDay" id="endDay$" placeholder="请输入项目结束日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点1名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node1Name" placeholder="请输入节点1名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点1截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node1Deadline" id="node1Deadline$" placeholder="请输入节点1截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点1完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node1RealDeadline" id="node1RealDeadline$" placeholder="请输入节点1完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点1超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node1ExtraDay" placeholder="请输入节点1超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点2名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node2Name" placeholder="请输入节点2名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点2截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node2Deadline" id="node2Deadline$" placeholder="请输入节点2截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点2完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node2RealDeadline" id="node2RealDeadline$" placeholder="请输入节点2完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点2超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node2ExtraDay" placeholder="请输入节点2超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点3名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node3Name" placeholder="请输入节点3名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点3截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node3Deadline" id="node3Deadline$" placeholder="请输入节点3截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点3完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node3RealDeadline" id="node3RealDeadline$" placeholder="请输入节点3完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点3超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node3ExtraDay" placeholder="请输入节点3超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点4名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node4Name" placeholder="请输入节点4名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点4截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node4Deadline" id="node4Deadline$" placeholder="请输入节点4截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点4完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node4RealDeadline" id="node4RealDeadline$" placeholder="请输入节点4完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点4超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node4ExtraDay" placeholder="请输入节点4超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点5名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node5Name" placeholder="请输入节点5名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点5截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node5Deadline" id="node5Deadline$" placeholder="请输入节点5截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点5完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node5RealDeadline" id="node5RealDeadline$" placeholder="请输入节点5完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点5超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node5ExtraDay" placeholder="请输入节点5超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点6名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node6Name" placeholder="请输入节点6名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点6截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node6Deadline" id="node6Deadline$" placeholder="请输入节点6截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点6完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node6RealDeadline" id="node6RealDeadline$" placeholder="请输入节点6完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点6超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node6ExtraDay" placeholder="请输入节点6超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点7名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node7Name" placeholder="请输入节点7名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点7截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node7Deadline" id="node7Deadline$" placeholder="请输入节点7截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点7完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node7RealDeadline" id="node7RealDeadline$" placeholder="请输入节点7完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点7超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node7ExtraDay" placeholder="请输入节点7超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点8名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node8Name" placeholder="请输入节点8名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点8截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node8Deadline" id="node8Deadline$" placeholder="请输入节点8截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点8完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node8RealDeadline" id="node8RealDeadline$" placeholder="请输入节点8完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点8超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node8ExtraDay" placeholder="请输入节点8超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点9名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node9Name" placeholder="请输入节点9名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点9截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node9Deadline" id="node9Deadline$" placeholder="请输入节点9截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点9完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node9RealDeadline" id="node9RealDeadline$" placeholder="请输入节点9完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点9超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node9ExtraDay" placeholder="请输入节点9超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点10名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node10Name" placeholder="请输入节点10名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点10截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node10Deadline" id="node10Deadline$" placeholder="请输入节点10截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点10完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node10RealDeadline" id="node10RealDeadline$" placeholder="请输入节点10完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点10超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node10ExtraDay" placeholder="请输入节点10超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点11名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node11Name" placeholder="请输入节点11名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点11截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node11Deadline" id="node11Deadline$" placeholder="请输入节点11截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点11完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node11RealDeadline" id="node11RealDeadline$" placeholder="请输入节点11完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点11超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node11ExtraDay" placeholder="请输入节点11超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点12名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node12Name" placeholder="请输入节点12名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点12截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node12Deadline" id="node12Deadline$" placeholder="请输入节点12截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点12完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node12RealDeadline" id="node12RealDeadline$" placeholder="请输入节点12完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点12超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node12ExtraDay" placeholder="请输入节点12超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点13名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node13Name" placeholder="请输入节点13名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点13截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node13Deadline" id="node13Deadline$" placeholder="请输入节点13截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点13完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node13RealDeadline" id="node13RealDeadline$" placeholder="请输入节点13完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点13超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node13ExtraDay" placeholder="请输入节点13超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点14名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node14Name" placeholder="请输入节点14名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点14截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node14Deadline" id="node14Deadline$" placeholder="请输入节点14截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点14完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node14RealDeadline" id="node14RealDeadline$" placeholder="请输入节点14完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点14超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node14ExtraDay" placeholder="请输入节点14超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点15名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node15Name" placeholder="请输入节点15名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点15截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node15Deadline" id="node15Deadline$" placeholder="请输入节点15截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点15完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node15RealDeadline" id="node15RealDeadline$" placeholder="请输入节点15完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点15超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node15ExtraDay" placeholder="请输入节点15超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点16名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node16Name" placeholder="请输入节点16名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点16截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node16Deadline" id="node16Deadline$" placeholder="请输入节点16截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点16完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node16RealDeadline" id="node16RealDeadline$" placeholder="请输入节点16完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点16超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node16ExtraDay" placeholder="请输入节点16超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点17名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node17Name" placeholder="请输入节点17名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点17截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node17Deadline" id="node17Deadline$" placeholder="请输入节点17截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点17完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node17RealDeadline" id="node17RealDeadline$" placeholder="请输入节点17完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点17超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node17ExtraDay" placeholder="请输入节点17超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点18名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node18Name" placeholder="请输入节点18名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点18截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node18Deadline" id="node18Deadline$" placeholder="请输入节点18截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点18完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node18RealDeadline" id="node18RealDeadline$" placeholder="请输入节点18完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点18超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node18ExtraDay" placeholder="请输入节点18超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点19名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node19Name" placeholder="请输入节点19名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点19截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node19Deadline" id="node19Deadline$" placeholder="请输入节点19截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点19完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node19RealDeadline" id="node19RealDeadline$" placeholder="请输入节点19完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点19超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node19ExtraDay" placeholder="请输入节点19超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点20名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node20Name" placeholder="请输入节点20名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点20截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node20Deadline" id="node20Deadline$" placeholder="请输入节点20截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点20完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node20RealDeadline" id="node20RealDeadline$" placeholder="请输入节点20完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点20超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node20ExtraDay" placeholder="请输入节点20超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点21名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node21Name" placeholder="请输入节点21名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点21截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node21Deadline" id="node21Deadline$" placeholder="请输入节点21截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点21完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node21RealDeadline" id="node21RealDeadline$" placeholder="请输入节点21完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点21超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node21ExtraDay" placeholder="请输入节点21超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点22名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node22Name" placeholder="请输入节点22名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点22截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node22Deadline" id="node22Deadline$" placeholder="请输入节点22截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点22完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node22RealDeadline" id="node22RealDeadline$" placeholder="请输入节点22完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点22超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node22ExtraDay" placeholder="请输入节点22超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点23名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node23Name" placeholder="请输入节点23名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点23截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node23Deadline" id="node23Deadline$" placeholder="请输入节点23截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点23完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node23RealDeadline" id="node23RealDeadline$" placeholder="请输入节点23完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点23超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node23ExtraDay" placeholder="请输入节点23超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点24名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node24Name" placeholder="请输入节点24名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点24截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node24Deadline" id="node24Deadline$" placeholder="请输入节点24截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点24完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node24RealDeadline" id="node24RealDeadline$" placeholder="请输入节点24完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点24超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node24ExtraDay" placeholder="请输入节点24超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点25名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node25Name" placeholder="请输入节点25名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点25截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node25Deadline" id="node25Deadline$" placeholder="请输入节点25截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点25完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node25RealDeadline" id="node25RealDeadline$" placeholder="请输入节点25完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点25超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node25ExtraDay" placeholder="请输入节点25超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点26名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node26Name" placeholder="请输入节点26名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点26截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node26Deadline" id="node26Deadline$" placeholder="请输入节点26截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点26完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node26RealDeadline" id="node26RealDeadline$" placeholder="请输入节点26完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点26超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node26ExtraDay" placeholder="请输入节点26超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点27名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node27Name" placeholder="请输入节点27名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点27截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node27Deadline" id="node27Deadline$" placeholder="请输入节点27截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点27完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node27RealDeadline" id="node27RealDeadline$" placeholder="请输入节点27完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点27超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node27ExtraDay" placeholder="请输入节点27超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点28名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node28Name" placeholder="请输入节点28名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点28截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node28Deadline" id="node28Deadline$" placeholder="请输入节点28截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点28完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node28RealDeadline" id="node28RealDeadline$" placeholder="请输入节点28完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点28超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node28ExtraDay" placeholder="请输入节点28超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点29名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node29Name" placeholder="请输入节点29名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点29截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node29Deadline" id="node29Deadline$" placeholder="请输入节点29截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点29完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node29RealDeadline" id="node29RealDeadline$" placeholder="请输入节点29完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点29超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node29ExtraDay" placeholder="请输入节点29超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点30名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node30Name" placeholder="请输入节点30名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点30截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node30Deadline" id="node30Deadline$" placeholder="请输入节点30截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点30完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node30RealDeadline" id="node30RealDeadline$" placeholder="请输入节点30完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点30超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node30ExtraDay" placeholder="请输入节点30超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点31名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node31Name" placeholder="请输入节点31名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点31截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node31Deadline" id="node31Deadline$" placeholder="请输入节点31截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点31完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node31RealDeadline" id="node31RealDeadline$" placeholder="请输入节点31完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点31超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node31ExtraDay" placeholder="请输入节点31超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点32名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node32Name" placeholder="请输入节点32名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点32截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node32Deadline" id="node32Deadline$" placeholder="请输入节点32截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点32完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node32RealDeadline" id="node32RealDeadline$" placeholder="请输入节点32完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点32超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node32ExtraDay" placeholder="请输入节点32超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点33名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node33Name" placeholder="请输入节点33名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点33截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node33Deadline" id="node33Deadline$" placeholder="请输入节点33截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点33完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node33RealDeadline" id="node33RealDeadline$" placeholder="请输入节点33完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点33超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node33ExtraDay" placeholder="请输入节点33超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点34名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node34Name" placeholder="请输入节点34名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点34截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node34Deadline" id="node34Deadline$" placeholder="请输入节点34截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点34完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node34RealDeadline" id="node34RealDeadline$" placeholder="请输入节点34完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点34超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node34ExtraDay" placeholder="请输入节点34超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点35名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node35Name" placeholder="请输入节点35名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点35截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node35Deadline" id="node35Deadline$" placeholder="请输入节点35截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点35完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node35RealDeadline" id="node35RealDeadline$" placeholder="请输入节点35完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点35超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node35ExtraDay" placeholder="请输入节点35超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点36名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node36Name" placeholder="请输入节点36名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点36截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node36Deadline" id="node36Deadline$" placeholder="请输入节点36截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点36完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node36RealDeadline" id="node36RealDeadline$" placeholder="请输入节点36完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点36超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node36ExtraDay" placeholder="请输入节点36超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点37名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node37Name" placeholder="请输入节点37名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点37截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node37Deadline" id="node37Deadline$" placeholder="请输入节点37截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点37完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node37RealDeadline" id="node37RealDeadline$" placeholder="请输入节点37完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点37超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node37ExtraDay" placeholder="请输入节点37超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点38名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node38Name" placeholder="请输入节点38名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点38截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node38Deadline" id="node38Deadline$" placeholder="请输入节点38截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点38完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node38RealDeadline" id="node38RealDeadline$" placeholder="请输入节点38完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点38超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node38ExtraDay" placeholder="请输入节点38超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点39名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node39Name" placeholder="请输入节点39名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点39截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node39Deadline" id="node39Deadline$" placeholder="请输入节点39截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点39完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node39RealDeadline" id="node39RealDeadline$" placeholder="请输入节点39完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点39超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node39ExtraDay" placeholder="请输入节点39超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点40名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node40Name" placeholder="请输入节点40名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点40截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node40Deadline" id="node40Deadline$" placeholder="请输入节点40截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点40完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node40RealDeadline" id="node40RealDeadline$" placeholder="请输入节点40完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点40超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node40ExtraDay" placeholder="请输入节点40超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点41名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node41Name" placeholder="请输入节点41名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点41截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node41Deadline" id="node41Deadline$" placeholder="请输入节点41截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点41完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node41RealDeadline" id="node41RealDeadline$" placeholder="请输入节点41完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点41超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node41ExtraDay" placeholder="请输入节点41超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点42名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node42Name" placeholder="请输入节点42名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点42截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node42Deadline" id="node42Deadline$" placeholder="请输入节点42截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点42完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node42RealDeadline" id="node42RealDeadline$" placeholder="请输入节点42完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点42超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node42ExtraDay" placeholder="请输入节点42超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点43名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node43Name" placeholder="请输入节点43名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点43截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node43Deadline" id="node43Deadline$" placeholder="请输入节点43截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点43完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node43RealDeadline" id="node43RealDeadline$" placeholder="请输入节点43完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点43超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node43ExtraDay" placeholder="请输入节点43超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点44名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node44Name" placeholder="请输入节点44名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点44截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node44Deadline" id="node44Deadline$" placeholder="请输入节点44截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点44完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node44RealDeadline" id="node44RealDeadline$" placeholder="请输入节点44完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点44超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node44ExtraDay" placeholder="请输入节点44超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点45名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node45Name" placeholder="请输入节点45名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点45截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node45Deadline" id="node45Deadline$" placeholder="请输入节点45截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点45完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node45RealDeadline" id="node45RealDeadline$" placeholder="请输入节点45完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点45超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node45ExtraDay" placeholder="请输入节点45超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点46名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node46Name" placeholder="请输入节点46名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点46截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node46Deadline" id="node46Deadline$" placeholder="请输入节点46截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点46完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node46RealDeadline" id="node46RealDeadline$" placeholder="请输入节点46完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点46超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node46ExtraDay" placeholder="请输入节点46超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点47名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node47Name" placeholder="请输入节点47名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点47截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node47Deadline" id="node47Deadline$" placeholder="请输入节点47截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点47完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node47RealDeadline" id="node47RealDeadline$" placeholder="请输入节点47完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点47超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node47ExtraDay" placeholder="请输入节点47超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点48名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node48Name" placeholder="请输入节点48名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点48截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node48Deadline" id="node48Deadline$" placeholder="请输入节点48截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点48完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node48RealDeadline" id="node48RealDeadline$" placeholder="请输入节点48完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点48超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node48ExtraDay" placeholder="请输入节点48超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点49名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node49Name" placeholder="请输入节点49名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点49截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node49Deadline" id="node49Deadline$" placeholder="请输入节点49截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点49完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node49RealDeadline" id="node49RealDeadline$" placeholder="请输入节点49完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点49超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node49ExtraDay" placeholder="请输入节点49超出日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点50名称: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node50Name" placeholder="请输入节点50名称">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点50截止日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node50Deadline" id="node50Deadline$" placeholder="请输入节点50截止日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点50完工日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node50RealDeadline" id="node50RealDeadline$" placeholder="请输入节点50完工日期">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">节点50超出日期: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="node50ExtraDay" placeholder="请输入节点50超出日期">
                    </div>
                </div>
             </div>
        </div>
        <hr class="layui-bg-gray">
        <div class="layui-form-item text-right">
            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button>
            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
        </div>
    </form>
</script>
</html>