懒羊羊
2023-10-17 92cffc135581ce2cf4aecac745ddb88e739c17de
工单修改
已修改7个文件
已添加2个文件
352 ■■■■ 文件已修改
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/zsx/bs/material/mapper/mapping/MaterialInfoMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/zsx/kb/formula/controller/FormulaKbController.java 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/zsx/pm/workOrder/controller/WorkOrderController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/assets/modular/kb/formula/formulaView.js 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/assets/modular/pm/workOrder/bulletBox/productListing.js 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/assets/modular/pm/workOrder/workOrder_add.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/pages/modular/kb/formula/formulaView.html 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/pages/modular/pm/workOrder/bulletBox/productListing.html 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/webapp/pages/modular/pm/workOrder/workOrder_add.html 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/zsx/bs/material/mapper/mapping/MaterialInfoMapper.xml
@@ -42,6 +42,9 @@
            <if test="paramCondition.typeL != null and paramCondition.typeL != ''">
                and type_l like CONCAT('%',#{paramCondition.typeL},'%')
            </if>
            <if test="paramCondition.typeZ != null and paramCondition.typeZ != ''">
                and type_Z like CONCAT('%',#{paramCondition.typeZ},'%')
            </if>
    </select>
    <select id="customMapList" resultType="map" parameterType="cn.stylefeng.guns.modular.zsx.bs.material.model.params.MaterialInfoParam">
@@ -59,6 +62,9 @@
            </if>
            <if test="paramCondition.typeL != null and paramCondition.typeL != ''">
                and type_l like CONCAT('%',#{paramCondition.typeL},'%')
            </if>
            <if test="paramCondition.typeZ != null and paramCondition.typeZ != ''">
                and type_Z like CONCAT('%',#{paramCondition.typeZ},'%')
            </if>
    </select>
@@ -78,6 +84,9 @@
            <if test="paramCondition.typeL != null and paramCondition.typeL != ''">
                and type_l like CONCAT('%',#{paramCondition.typeL},'%')
            </if>
            <if test="paramCondition.typeZ != null and paramCondition.typeZ != ''">
                and type_Z like CONCAT('%',#{paramCondition.typeZ},'%')
            </if>
    </select>
    <select id="customPageMapList" resultType="map" parameterType="cn.stylefeng.guns.modular.zsx.bs.material.model.params.MaterialInfoParam">
@@ -96,6 +105,9 @@
            <if test="paramCondition.typeL != null and paramCondition.typeL != ''">
                and type_l like CONCAT('%',#{paramCondition.typeL},'%')
            </if>
            <if test="paramCondition.typeZ != null and paramCondition.typeZ != ''">
                and type_Z like CONCAT('%',#{paramCondition.typeZ},'%')
            </if>
    </select>
</mapper>
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/zsx/kb/formula/controller/FormulaKbController.java
@@ -1,14 +1,23 @@
package cn.stylefeng.guns.modular.zsx.kb.formula.controller;
import cn.stylefeng.guns.modular.zsx.bs.formulaChild.entity.FormulaChildInfo;
import cn.stylefeng.guns.modular.zsx.bs.formulaChild.model.params.FormulaChildInfoParam;
import cn.stylefeng.guns.modular.zsx.bs.formulaChild.service.FormulaChildInfoService;
import cn.stylefeng.guns.modular.zsx.bs.formulaChild.service.impl.FormulaChildInfoServiceImpl;
import cn.stylefeng.guns.modular.zsx.kb.utils.IPUtil;
import cn.stylefeng.guns.modular.zsx.pm.salesOrder.service.SalesOrderService;
import cn.stylefeng.roses.core.mutidatasource.annotion.DataSource;
import cn.stylefeng.roses.kernel.model.response.ResponseData;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.net.*;
import java.util.Enumeration;
import java.util.List;
import java.util.Set;
@@ -16,6 +25,9 @@
@RequestMapping("/kb/formulaView")
public class FormulaKbController {
    private String PREFIX = "/modular/kb/formula";
    @Autowired
    private FormulaChildInfoService formulaChildInfoService;
    /**
     * è·³è½¬åˆ°ä¸»é¡µé¢
@@ -28,21 +40,48 @@
        return PREFIX + "/formulaView.html";
    }
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface networkInterface = networkInterfaces.nextElement();
                Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
                while (inetAddresses.hasMoreElements()) {
                    InetAddress inetAddress = inetAddresses.nextElement();
                    if (inetAddress instanceof Inet4Address) { // è¿‡æ»¤IPv4地址
                        System.out.println(inetAddress.getHostAddress());
                    }
                }
            }
        } catch (SocketException e) {
            throw new RuntimeException(e);
    /**
     * æ–°å¢žæŽ¥å£
     *
     * @author ruimin
     * @Date 2023-10-09
     */
    @RequestMapping("/addFormulaState")
    @ResponseBody
    @DataSource(name = "self")
    public ResponseData addFormulaState(FormulaChildInfoParam formulaChildInfoParam) {
        List<FormulaChildInfo> list = this.formulaChildInfoService.list(new QueryWrapper<FormulaChildInfo>()
                .eq("formula_code", formulaChildInfoParam.getFormulaCode())
                .eq("spare_field_1","")
                .orderByAsc("step_sort")
        );
        if(list.size()>0){
            FormulaChildInfo formulaChildInfo = list.get(0);
            formulaChildInfo.setSpareField1("3");
            this.formulaChildInfoService.saveOrUpdate(formulaChildInfo);
        }
        return ResponseData.success();
    }
    /**
     * æ–°å¢žæŽ¥å£
     *
     * @author ruimin
     * @Date 2023-10-09
     */
    @RequestMapping("/clear")
    @ResponseBody
    @DataSource(name = "self")
    public ResponseData clear(FormulaChildInfoParam formulaChildInfoParam) {
        List<FormulaChildInfo> list = this.formulaChildInfoService.list(new QueryWrapper<FormulaChildInfo>()
                .eq("formula_code", formulaChildInfoParam.getFormulaCode())
        );
        for (int i = 0; i < list.size(); i++) {
            FormulaChildInfo formulaChildInfo = list.get(i);
            formulaChildInfo.setSpareField1("");
            this.formulaChildInfoService.saveOrUpdate(formulaChildInfo);
        }
        return ResponseData.success();
    }
}
guns-vip-main/src/main/java/cn/stylefeng/guns/modular/zsx/pm/workOrder/controller/WorkOrderController.java
@@ -63,6 +63,17 @@
    }
    /**
     * äº§å“åˆ—表页面
     *
     * @author ruimin
     * @Date 2023-08-26
     */
    @RequestMapping("/productListing")
    public String productListing() {
        return PREFIX + "/bulletBox/productListing.html";
    }
    /**
     * æ–°å¢žæŽ¥å£
     *
     * @author ruimin
guns-vip-main/src/main/webapp/assets/modular/kb/formula/formulaView.js
@@ -53,7 +53,8 @@
        url: Feng.ctxPath + '/formulaChildInfo/list',
        page: false,
        // height: "full-158",
        height: 460,
        // height: 460,
        height: 400,
        cellMinWidth: 100,
        where: queryData,
        cols: FormulaChildInfo.initColumn(),
@@ -132,12 +133,13 @@
        }
    });
    setInterval(function() {
        $('input[name="sex1"][value="nan1"]').prop('checked', true);
    }, 1000);
    setInterval(function() {
        radioElement.prop('checked', false);
    }, 2000);
    // //redio闪烁
    // setInterval(function() {
    //     $('input[name="sex1"][value="nan1"]').prop('checked', true);
    // }, 1000);
    // setInterval(function() {
    //     radioElement.prop('checked', false);
    // }, 2000);
    //Hash地址的定位
    var layid = location.hash.replace(/^#test=/, '');
@@ -147,4 +149,54 @@
        location.hash = 'test='+ $(this).attr('lay-id');
    });
    /**
     * åŸºç¡€BOM管理
     */
    var ProductBomChildInfo = {
        tableId: "productBomChildInfoTable"
    };
    /**
     * åˆå§‹åŒ–表格的列
     */
    ProductBomChildInfo.initColumn = function () {
        return [[
            {field: 'id', hide: true, title: '主键id'},
            {field: 'opCode', sort: true, title: '工序编码'},
            {field: 'opName', sort: true, title: '工序名称'},
            {field: 'materialCode', sort: true, title: '物料编码'},
            {field: 'costQty', sort: true, title: '单耗'},
            {field: 'bomCode', sort: true, title: 'BOM编码'},
        ]];
    };
    var queryData = {};
    queryData['bomCode'] = "301002000021";
    // æ¸²æŸ“表格
    table.render({
        elem: '#' + ProductBomChildInfo.tableId,
        url: Feng.ctxPath + '/productBomChildInfo/list',
        page: true,
        height: 460,
        cellMinWidth: 100,
        where: queryData,
        cols: ProductBomChildInfo.initColumn()
    });
    $("#scanCode").keydown(function(event) {
        if (event.keyCode === 13) {
            // æ‰§è¡Œæ‚¨æƒ³è¦çš„代码
            var ajax = new $ax(Feng.ctxPath + "/kb/formulaView/addFormulaState?formulaCode="+msg.recipeCode);
            var result = ajax.start();
            table.reload("formulaChildInfoTable")
            return false; // é˜»æ­¢é»˜è®¤è¡Œä¸º
        }
    });
    $("#clear").click(function() {
        var ajax = new $ax(Feng.ctxPath + "/kb/formulaView/clear?formulaCode="+msg.recipeCode);
        var result = ajax.start();
        table.reload("formulaChildInfoTable")
    });
});
guns-vip-main/src/main/webapp/assets/modular/pm/workOrder/bulletBox/productListing.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
layui.use(['table'], function () {
    var $ = layui.jquery;
    var table = layui.table;
    /**
     * ç‰©æ–™ä¿¡æ¯ç®¡ç†
     */
    var MaterialInfo = {
        tableId: "materialInfoTable"
    };
    var materialType = parent.materialType;
    console.log(materialType)
    $('#serch').click(function(){
        var queryData = {};
        queryData['typeZ'] = materialType;
        queryData['materialName'] = $("#materialName").val();
        queryData['materialCode'] = $("#materialCode").val();
        table.reload(MaterialInfo.tableId, {
            where: queryData, page: {curr: 1}
        });
    });
    /**
     * ç¼ºæ–™æŠ¥è­¦åˆå§‹åŒ–表格的列
     */
    MaterialInfo.initColumn = function () {
        return [[
            {type: 'radio'},
            {field: 'id', hide: true, title: '主键id'},
            {field: 'materialCode', sort: true, title: '产品编号'},
            {field: 'materialName', sort: true, title: '产品名称'},
            {field: 'typeZ', sort: true, title: '种类'},
        ]];
    };
    table =  $.extend(table, {config: {checkName: 'checked'}});
    var queryData = {};
    queryData['typeZ'] = materialType;
    var tableResult = table.render({
        elem: '#' + MaterialInfo.tableId,
        url: Feng.ctxPath + '/materialInfo/list',
        page: true,
        where:queryData,
        cellMinWidth: 80,
        cols: MaterialInfo.initColumn()
    });
    let Msg='';
    table.on('row(materialInfoTable)',function (data) {
        Msg = data.data;
    })
    $('#btnSubmit').click(function(){
        clearType();
        if (Msg !=='' ){
            // åˆ¤æ–­æ˜¯å¦ç‚¹å‡»çš„是确定
            var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
            window.localStorage.setItem('message',JSON.stringify(Msg));
            parent.layer.close(index);
        }
        else {
            Feng.error("请选择一条数据!")
        }
    });
    $('#reset').click(function(){
        clearType();
        Msg = "";
        window.localStorage.clear();
    });
    function clearType(){
        parent.materialType="";
    }
});
guns-vip-main/src/main/webapp/assets/modular/pm/workOrder/workOrder_add.js
@@ -100,6 +100,23 @@
        }
    });
    $('#productCode').click(function () {
        layer.open({
            type: 2,
            area: ['1000px', '600px'],
            title: '物料信息',
            content: Feng.ctxPath + '/workOrder/productListing',
            success: function (layero, index) {
                window.materialType = '产品';
            },
            end: function () {
                let msg = JSON.parse(window.localStorage.getItem('message'));
                $('#productCode').val(msg.materialCode);
                $('#productName').val(msg.materialName);
            }
        });
    });
    //表单提交事件
    form.on('submit(btnSubmit)', function (data) {
        var ajax = new $ax(Feng.ctxPath + "/workOrder/addItem", function (data) {
guns-vip-main/src/main/webapp/pages/modular/kb/formula/formulaView.html
@@ -36,7 +36,7 @@
                <div class="layui-card-header" style="font-weight: bold">
                    <i class="layui-icon layui-icon-rate-solid"></i>工单信息
                </div>
                <div class="layui-card-body">
                <div class="layui-card-body" style="height: 368px">
                    <div class="orderInfo">
                        <span>工单编号</span>
                        <span class="mySpan" style="float: right" id="workOrder"></span>
@@ -72,31 +72,15 @@
                    <hr class="layui-border-orange">
                    <div class="container">
                        <input type="radio" id="sex1" name="sex1" value="nan1" title="男">
                        <span>系统就绪</span>
                        <input style="margin-left: 150px" type="radio" name="sex" value="nan" title="男">
                        <span>工件到位</span>
                    </div>
                    <div class="container">
                        <input type="radio" name="sex" value="nan" title="男">
                        <span>读取条码</span>
                        <input style="margin-left: 150px" type="radio" name="sex" value="nan" title="男">
                        <span>下发机型</span>
                        <span>工件入站</span>
                    </div>
                    <div class="container">
                        <input type="radio" name="sex" value="nan" title="男">
                        <span>允许启动</span>
                        <input style="margin-left: 150px" type="radio" name="sex" value="nan" title="男">
                        <span>不允许启动</span>
                    </div>
                    <div class="container">
                        <input type="radio" name="sex" value="nan" title="男">
                        <span>合格完成</span>
                        <input style="margin-left: 150px" type="radio" name="sex" value="nan" title="男">
                        <span>不合格完成</span>
                    </div>
                    <div class="container">
                        <input type="radio" name="sex" value="nan" title="男">
                        <span>保存完成</span>
                        <span>工件出站</span>
                        <input style="margin-left: 150px" type="radio" name="test" value="test1" title="男">
                        <span>工件完成</span>
                    </div>
                </div>
            </div>
@@ -110,21 +94,16 @@
                    <div class="layui-tab" lay-filter="test">
                        <ul class="layui-tab-title">
                            <li class="layui-this" lay-id="11">首页</li>
                            <li lay-id="22">工序状态</li>
                            <li lay-id="33">装配采集清单</li>
                            <li lay-id="44">工艺参数</li>
                            <li lay-id="55">不合格质量数据</li>
                            <li lay-id="22">BOM清单</li>
                        </ul>
                        <div class="layui-tab-content">
                            <div class="layui-tab-item layui-show">
                                <table class="layui-table" id="formulaChildInfoTable" lay-filter="formulaChildInfoTable"></table>
                                <input id="scanCode" name="scanCode" placeholder="请扫描物料条码" type="text" class="layui-input"/>
                            </div>
                            <div class="layui-tab-item">
                                å†…容3
                                <table class="layui-table" id="productBomChildInfoTable" lay-filter="productBomChildInfoTable"></table>
                            </div>
                            <div class="layui-tab-item">内容3</div>
                            <div class="layui-tab-item">内容4</div>
                            <div class="layui-tab-item">内容5</div>
                        </div>
                    </div>
                </div>
@@ -137,6 +116,7 @@
                </div>
                <div class="layui-card-body">
                    <img id="imgs" width="320px" height="270px">
                    <button type="button" class="layui-btn layui-btn-primary" id="clear">入站</button>
                </div>
            </div>
guns-vip-main/src/main/webapp/pages/modular/pm/workOrder/bulletBox/productListing.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
@layout("/common/_form.html",{js:["/assets/modular/pm/workOrder/bulletBox/productListing.js"]}){
    <div class="layui-fluid" style="padding-bottom: 75px;">
        <div class="layui-card">
            <div class="layui-card-body">
                <div class="layui-form-item layui-row">
                    <input id= "id" name="id" type="hidden"/>
                    <input id= "materialType" name="materialType" type="hidden"/>
                    <div class="layui-inline layui-col-md4">
                        <label class="layui-form-label">物料编号<span style="color: red;">*</span></label>
                        <div class="layui-input-block">
                            <input id="materialCode" name="materialCode" placeholder="请输入产品编号" type="text" class="layui-input"/>
                        </div>
                    </div>
                    <div class="layui-inline layui-col-md4">
                        <label class="layui-form-label">物料名称<span style="color: red;">*</span></label>
                        <div class="layui-input-block">
                            <input id="materialName" name="materialName" placeholder="请输入物料名称" type="text" class="layui-input"/>
                        </div>
                    </div>
                    <div class="layui-inline layui-col-md-offset3">
                        <button class="layui-btn" id="serch">搜索</button>
                    </div>
                </div>
                <table class="layui-table" id="materialInfoTable" lay-filter="materialInfoTable"></table>
            </div>
        </div>
    </div>
<div class="form-group-bottom text-center">
    <button class="layui-btn" id="btnSubmit">&emsp;提交&emsp;</button>
    <button type="reset" id="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog">&emsp;关闭&emsp;</button>
</div>
@}
guns-vip-main/src/main/webapp/pages/modular/pm/workOrder/workOrder_add.html
@@ -23,27 +23,28 @@
                    <div class="layui-inline layui-col-md6">
                        <label class="layui-form-label">产品编号<span style="color: red;">*</span></label>
                        <div class="layui-input-block">
                            <input id="productCode" name="productCode" placeholder="请输入产品编号" type="text" class="layui-input" lay-verify="required" required/>
                            <input id="productCode" name="productCode" placeholder="请输入产品编号" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
                            <input id="productName" name="productName" placeholder="请输入产品名称" type="text" hidden/>
                        </div>
                    </div>
                    <div class="layui-inline layui-col-md6">
                        <label class="layui-form-label">产品名称<span style="color: red;">*</span></label>
                        <div class="layui-input-block">
                            <input id="productName" name="productName" placeholder="请输入产品名称" type="text" class="layui-input" lay-verify="required" required/>
                        </div>
                    </div>
<!--                    <div class="layui-inline layui-col-md6">-->
<!--                        <label class="layui-form-label">产品名称<span style="color: red;">*</span></label>-->
<!--                        <div class="layui-input-block">-->
<!--                            <input id="productName" name="productName" placeholder="请输入产品名称" type="text" class="layui-input" lay-verify="required" required/>-->
<!--                        </div>-->
<!--                    </div>-->
                    <div class="layui-inline layui-col-md6">
                        <label class="layui-form-label">计划数量<span style="color: red;">*</span></label>
                        <div class="layui-input-block">
                            <input id="planQty" name="planQty" placeholder="请输入计划数量" type="number" class="layui-input" lay-verify="required" required/>
                        </div>
                    </div>
                    <div class="layui-inline layui-col-md6">
                        <label class="layui-form-label">完成数量<span style="color: red;">*</span></label>
                        <div class="layui-input-block">
                            <input id="produceQty" name="produceQty" placeholder="请输入完成数量" type="number" class="layui-input" lay-verify="required" required/>
                        </div>
                    </div>
<!--                    <div class="layui-inline layui-col-md6">-->
<!--                        <label class="layui-form-label">完成数量<span style="color: red;">*</span></label>-->
<!--                        <div class="layui-input-block">-->
<!--                            <input id="produceQty" name="produceQty" placeholder="请输入完成数量" type="number" class="layui-input" lay-verify="required" required/>-->
<!--                        </div>-->
<!--                    </div>-->
                    <div class="layui-inline layui-col-md6">
                        <label class="layui-form-label">上线数量<span style="color: red;">*</span></label>
                        <div class="layui-input-block">