Merge remote-tracking branch 'origin/master'
 
	
	
	
	
	
	
	
	
	
	
	
	
	
 |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | import com.baomidou.mybatisplus.plugins.Page; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import com.core.common.*; | 
 |  |  | import org.apache.poi.ss.formula.functions.Now; | 
 |  |  | import zy.cloud.wms.manager.entity.Quality; | 
 |  |  | import zy.cloud.wms.manager.entity.QualityDetl; | 
 |  |  | import zy.cloud.wms.manager.entity.Receive; | 
 |  |  | import zy.cloud.wms.manager.entity.ReceiveDetl; | 
 |  |  | import zy.cloud.wms.manager.service.QualityDetlService; | 
 |  |  | import zy.cloud.wms.manager.service.QualityService; | 
 |  |  | 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 zy.cloud.wms.manager.service.ReceiveDetlService; | 
 |  |  |  | 
 |  |  | import java.text.SimpleDateFormat; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | @RestController | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private QualityService qualityService; | 
 |  |  |     @Autowired | 
 |  |  |     private ReceiveDetlService receiveDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private QualityDetlService qualityDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private SnowflakeIdWorker snowflakeIdWorker; | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/quality/{id}/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R add(Quality quality) { | 
 |  |  |         qualityService.insert(quality); | 
 |  |  |         Wrapper<ReceiveDetl> wrapper = new EntityWrapper<ReceiveDetl>(); | 
 |  |  |         List<ReceiveDetl> list = receiveDetlService.selectList(wrapper.eq("order_no",quality.getUuid() )); | 
 |  |  |         if(list.size()>0){ | 
 |  |  |         for(ReceiveDetl detl:list){ | 
 |  |  |             QualityDetl qualityDetl = new QualityDetl(); | 
 |  |  |             qualityDetl.setAnfme(detl.getAnfme()); | 
 |  |  |             qualityDetl.setBillNo(quality.getBillNo()); | 
 |  |  |             qualityDetl.setOrderNo(detl.getOrderNo()); | 
 |  |  |             qualityDetl.setMatnr(detl.getMatnr()); | 
 |  |  |             qualityDetl.setMaktx(detl.getMaktx()); | 
 |  |  |             qualityDetl.setProdDate(new Date()); | 
 |  |  |             qualityDetlService.insert(qualityDetl); | 
 |  |  |         } | 
 |  |  |         } | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/quality/orderNo/init1") | 
 |  |  |     @ManagerAuth(memo = "生成单据编号") | 
 |  |  |     public R initOrderNo() { | 
 |  |  |         SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss"); | 
 |  |  |         String orderNo = "  QC-" + String.valueOf(dateformat.format(new Date())); | 
 |  |  |         return R.ok().add(orderNo); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/quality/update/auth") | 
 |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | //    @RequestMapping("/orderNo/init1") | 
 |  |  | //    @ManagerAuth(memo = "生成单据编号") | 
 |  |  | //    public R initOrderNo() { | 
 |  |  | //        long nextId = snowflakeIdWorker.nextId(); | 
 |  |  | //        String orderNo = "QC-" + String.valueOf(nextId).substring(0, 15); | 
 |  |  | //        if (qualityService.selectByOrderNo(orderNo, getHostId()) != null) { | 
 |  |  | //            return R.error("抱歉,单据编号已存在"); | 
 |  |  | //        } | 
 |  |  | //        return R.ok().add(orderNo); | 
 |  |  | //    } | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/quality/export/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R export(@RequestBody JSONObject param){ | 
 
 |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | import com.baomidou.mybatisplus.plugins.Page; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import zy.cloud.wms.manager.entity.Quality; | 
 |  |  | import zy.cloud.wms.manager.entity.QualityDetl; | 
 |  |  | import zy.cloud.wms.manager.service.QualityDetlService; | 
 |  |  | import com.core.annotations.ManagerAuth; | 
 |  |  | 
 |  |  | import zy.cloud.wms.common.web.BaseController; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  | import zy.cloud.wms.manager.service.QualityService; | 
 |  |  |  | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private QualityDetlService qualityDetlService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private QualityService qualityService; | 
 |  |  |     @RequestMapping(value = "/qualityDetl/{id}/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R get(@PathVariable("id") String id) { | 
 |  |  | 
 |  |  |                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); | 
 |  |  |                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); | 
 |  |  |             } else { | 
 |  |  |                 wrapper.like(entry.getKey(), val); | 
 |  |  |                 wrapper.eq(entry.getKey(), val); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | 
 |  |  |         if (Cools.isEmpty(qualityDetl) || null==qualityDetl.getId()){ | 
 |  |  |             return R.error(); | 
 |  |  |         } | 
 |  |  |         if(!Cools.isEmpty(qualityDetl.getQuaStatus())){ | 
 |  |  |         Quality quality= qualityService.selectOne(new EntityWrapper<Quality>().eq("bill_no",qualityDetl.getBillNo())); | 
 |  |  |             quality.setAuditStatus(Short.valueOf("1")); | 
 |  |  |             qualityService.updateById(quality); | 
 |  |  |         } | 
 |  |  |         qualityDetlService.updateById(qualityDetl); | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 
 |  |  | 
 |  |  |         return R.ok(receiveDetlService.selectById(String.valueOf(id))); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/receiveDetl/list/auth") | 
 |  |  |     @RequestMapping(value ="/receiveDetl/list/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R list(@RequestParam(defaultValue = "1")Integer curr, | 
 |  |  |                   @RequestParam(defaultValue = "10")Integer limit, | 
 |  |  | 
 |  |  |                   @RequestParam(required = false)String orderByType, | 
 |  |  |                   @RequestParam Map<String, Object> param){ | 
 |  |  |         EntityWrapper<ReceiveDetl> wrapper = new EntityWrapper<>(); | 
 |  |  |         param.values(); | 
 |  |  |         excludeTrash(param); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         return R.ok(receiveDetlService.selectPage(new Page<>(curr, limit), wrapper)); | 
 |  |  |         return R.ok(receiveDetlService.selectPage(new Page<>(curr, limit), wrapper.orderBy("id",false))); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void convert(Map<String, Object> map, EntityWrapper wrapper){ | 
 |  |  | 
 |  |  |         } | 
 |  |  |         Node targetLoc = nodeService.selectOne(new EntityWrapper<Node>() | 
 |  |  |                 .eq("id", putShelfDTO.getSelect())); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         /** | 
 |  |  |          * 更新库存 | 
 |  |  |          */ | 
 |  |  | 
 |  |  |  | 
 |  |  |         ReceiveDetl targetRece = receiveDetlService.selectOne(new EntityWrapper<ReceiveDetl>() | 
 |  |  |                 .eq("id", putShelfDTO.getId())); | 
 |  |  |         targetRece.setInQty((int) (targetRece.getInQty() + remain)); | 
 |  |  |         targetRece.setInQty((targetRece.getInQty() + remain)); | 
 |  |  |         receiveDetlService.update(targetRece,new EntityWrapper<ReceiveDetl>() | 
 |  |  |                 .eq("id",targetRece.getId())); | 
 |  |  |         /** | 
 |  |  |          * 反写订单状态 | 
 |  |  |          */ | 
 |  |  |         if(!Cools.isEmpty(putShelfDTO.getOrderNo())){ | 
 |  |  |             List<ReceiveDetl> list = receiveDetlService.selectList(new EntityWrapper<ReceiveDetl>().eq("order_no",putShelfDTO.getOrderNo())); | 
 |  |  |             boolean flag = true; | 
 |  |  |  | 
 |  |  |             if(list.size()>0){ | 
 |  |  |                 for (ReceiveDetl receiveDetl : list){ | 
 |  |  |                     if(receiveDetl.getInQty() < receiveDetl.getCount()){ | 
 |  |  |                         flag = false; | 
 |  |  |                         break; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if(flag){ | 
 |  |  |                 Receive receive = receiveService.selectOne(new EntityWrapper<Receive>().eq("order_no",putShelfDTO.getOrderNo())); | 
 |  |  |                 receive.setSettle(Long.valueOf(4)); | 
 |  |  |                 receiveService.updateById(receive); | 
 |  |  |             } | 
 |  |  | //            ReceiveDetl receiveDetl = receiveDetlService.selectOne(new EntityWrapper<ReceiveDetl>().eq("order_no",putShelfDTO.getOrderNo()).eq("matnr",putShelfDTO.getMatnr())); | 
 |  |  | //            for(int i=0;i<list.size();i++){ | 
 |  |  | //                if(list.get(i).getMatnr().equals(receiveDetl.getMatnr())){ | 
 |  |  | //                    if(list.get(i).getInQty()>=list.get(i).getCount()){ | 
 |  |  | //                        Receive receive = receiveService.selectOne(new EntityWrapper<Receive>().eq("order_no",putShelfDTO.getOrderNo())); | 
 |  |  | //                        receive.setSettle(Long.valueOf(4)); | 
 |  |  | //                        receiveService.updateById(receive); | 
 |  |  | //                        break; | 
 |  |  | //                    } | 
 |  |  | //                } | 
 |  |  | //            } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         /** | 
 |  |  |          * 上架完成之后,存放数据至上架统计表 man_receive_log | 
 |  |  |          */ | 
 |  |  | 
 |  |  |         /** | 
 |  |  |          * 反写回入库档 | 
 |  |  |          */ | 
 |  |  |         receiveDetl.setInQty(0); | 
 |  |  |         receiveDetl.setInQty(0.0); | 
 |  |  |         receiveDetl.setUpdateTime(new Date()); | 
 |  |  |         receiveDetl.setUpdateBy(getUserId()); | 
 |  |  |         receiveDetlService.update(receiveDetl,new EntityWrapper<ReceiveDetl>() | 
 
 |  |  | 
 |  |  | import zy.cloud.wms.manager.entity.result.KeyValueVo; | 
 |  |  | import zy.cloud.wms.manager.service.*; | 
 |  |  |  | 
 |  |  | import java.text.SimpleDateFormat; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  |     @ManagerAuth(memo = "生成单据编号") | 
 |  |  |     public R initOrderNo() { | 
 |  |  |         long nextId = snowflakeIdWorker.nextId(); | 
 |  |  |         String orderNo = "AT-" + String.valueOf(nextId).substring(0, 15); | 
 |  |  |         SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss"); | 
 |  |  |         String orderNo = "AT-" + String.valueOf(dateformat.format(new Date())); | 
 |  |  |         //String orderNo = "AT-" + String.valueOf(nextId).substring(0, 15); | 
 |  |  |         if (orderService.selectByOrderNo(orderNo, getHostId()) != null) { | 
 |  |  |             return R.error("抱歉,单据编号已存在"); | 
 |  |  |         } | 
 |  |  |         return R.ok().add(orderNo); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | //    @RequestMapping("/orderNo/init1") | 
 |  |  | //    @ManagerAuth(memo = "生成单据编号") | 
 |  |  | //    public R initOrderNo1() { | 
 |  |  | //        long nextId = snowflakeIdWorker.nextId(); | 
 |  |  | //        SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss"); | 
 |  |  | //        String orderNo = "AT-" + String.valueOf(dateformat.format(new Date())); | 
 |  |  | //        //String orderNo = "AT-" + String.valueOf(nextId).substring(0, 15); | 
 |  |  | //        if (orderService.selectByOrderNo(orderNo, getHostId()) != null) { | 
 |  |  | //            return R.error("抱歉,单据编号已存在"); | 
 |  |  | //        } | 
 |  |  | //        return R.ok().add(orderNo); | 
 |  |  | //    } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/receive/init") | 
 |  |  |     @ManagerAuth(memo = "生成销售订单") | 
 |  |  |     public R initReceive(@RequestBody InitOrderParam param) { | 
 
 |  |  | 
 |  |  | package zy.cloud.wms.manager.entity; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.annotations.TableId; | 
 |  |  | import com.baomidou.mybatisplus.enums.IdType; | 
 |  |  | import com.core.common.Cools;import io.swagger.annotations.ApiModelProperty; | 
 |  |  | import io.swagger.annotations.ApiModelProperty; | 
 |  |  | import com.baomidou.mybatisplus.annotations.TableField; | 
 |  |  | 
 |  |  |     /** | 
 |  |  |      * ID | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "ID") | 
 |  |  |    @ApiModelProperty(value= "ID") | 
 |  |  |    @TableId(value = "id",type = IdType.AUTO) | 
 |  |  |     private Long id; | 
 |  |  |  | 
 |  |  |     @ApiModelProperty(value= "") | 
 
 |  |  | 
 |  |  | package zy.cloud.wms.manager.entity; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.annotations.TableId; | 
 |  |  | import com.baomidou.mybatisplus.enums.IdType; | 
 |  |  | import com.core.common.Cools;import io.swagger.annotations.ApiModelProperty; | 
 |  |  | import io.swagger.annotations.ApiModelProperty; | 
 |  |  | import com.baomidou.mybatisplus.annotations.TableField; | 
 |  |  | 
 |  |  |      * ID | 
 |  |  |      */ | 
 |  |  |     @ApiModelProperty(value= "ID") | 
 |  |  |     @TableId(value = "id",type = IdType.AUTO) | 
 |  |  |     private Long id; | 
 |  |  |  | 
 |  |  |     @ApiModelProperty(value= "") | 
 
 |  |  | 
 |  |  |     private String memo; | 
 |  |  |  | 
 |  |  |     @TableField("in_qty") | 
 |  |  |     private int inQty; | 
 |  |  |     private Double inQty; | 
 |  |  |  | 
 |  |  |     @TableField("qua_status") | 
 |  |  |     private int quaStatus; | 
 
 |  |  | 
 |  |  |             ReceiveDetl receiveDetl = new ReceiveDetl(); | 
 |  |  |             receiveDetl.setHostId(hostId); | 
 |  |  |             receiveDetl.setOrderId(order_no.getId()); | 
 |  |  |             receiveDetl.setOrderNo(param.getOrderNo()); | 
 |  |  |             receiveDetl.setAnfme(dto.getCount()); | 
 |  |  |             receiveDetl.setCreateTime(now); | 
 |  |  |             receiveDetl.setCreateBy(userId); | 
 
 |  |  | 
 |  |  | var pageCurr; | 
 |  |  | var billNO; | 
 |  |  | layui.config({ | 
 |  |  |     base: baseUrl + "/static/layui/lay/modules/" | 
 |  |  | }).use(['table','laydate', 'form', 'admin'], function(){ | 
 |  |  | 
 |  |  |         cellMinWidth: 50, | 
 |  |  |         cols: [[ | 
 |  |  |             {type: 'checkbox'} | 
 |  |  |             ,{field: 'id', align: 'center',title: 'ID'} | 
 |  |  |             //,{field: 'id', align: 'center',title: 'ID'} | 
 |  |  |             ,{field: 'billNo', align: 'center',title: '检验编号'} | 
 |  |  |             ,{align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 140, width: 140} | 
 |  |  |             ,{field: 'auditStatus$', align: 'center',title: '审核状态', width: 100} | 
 |  |  |             ,{field: 'auditStatus$', align: 'center',title: '审核状态'} | 
 |  |  |             ,{field: 'memo', align: 'center',title: '备注', hide:true} | 
 |  |  |             ,{field: 'modiUser$', align: 'center',title: '修改人员', width: 100} | 
 |  |  |             ,{field: 'modiTime$', align: 'center',title: '修改时间', width: 200} | 
 |  |  |             ,{field: 'appeUser$', align: 'center',title: '创建者', hide:true} | 
 |  |  |             ,{field: 'appeTime$', align: 'center',title: '添加时间', hide:true} | 
 |  |  |             ,{align: 'center', title: '明细', toolbar: '#tbLook'} | 
 |  |  |             ,{field: 'updateBy$', align: 'center',title: '修改人员'} | 
 |  |  |             ,{field: 'updateTime$', align: 'center',title: '修改时间'} | 
 |  |  |             ,{field: 'createBy$', align: 'center',title: '创建者', hide:true} | 
 |  |  |             ,{field: 'createTime$', align: 'center',title: '添加时间', hide:true} | 
 |  |  |  | 
 |  |  |             ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150} | 
 |  |  |         ]], | 
 |  |  | 
 |  |  |     // 监听行工具事件 | 
 |  |  |     table.on('tool(quality)', function(obj){ | 
 |  |  |         var data = obj.data; | 
 |  |  |         billNO=data; | 
 |  |  |         switch (obj.event) { | 
 |  |  |             case 'edit': | 
 |  |  |                 showEditModel(data); | 
 |  |  | 
 |  |  |                 layer.open({ | 
 |  |  |                     type: 1, | 
 |  |  |                     title: false, | 
 |  |  |                     area: '2000px', | 
 |  |  |                     area: '1000px', | 
 |  |  |                     offset: [offset.top + 'px', (offset.left - 530 + $a.outerWidth()) + 'px'], | 
 |  |  |                     shade: .01, | 
 |  |  |                     shadeClose: true, | 
 |  |  | 
 |  |  |                             headers: {token: localStorage.getItem('token')}, | 
 |  |  |                             url: baseUrl+'/qualityDetl/list/auth', | 
 |  |  |                             where: { | 
 |  |  |                                 quality_id: data.id | 
 |  |  |                                 bill_no: data.billNo | 
 |  |  |                             }, | 
 |  |  |                             limit: 5, | 
 |  |  |                             page: true, | 
 |  |  | 
 |  |  |                             cols: [[ | 
 |  |  |                                 // {type: 'numbers'}, | 
 |  |  |                                 // {field: 'billNo', title: '检验编号', align: 'center'}, | 
 |  |  |                                 {field: 'seqNo', title: '单据行号', align: 'center',width: 100}, | 
 |  |  |                                 {field: 'orderNo', title: '入库单号', align: 'center',width: 150}, | 
 |  |  |                                 {field: 'anfme', title: '待入库数量', align: 'center',width: 100}, | 
 |  |  |                                 {field: 'matnr', title: '产品ID', align: 'center',width: 150}, | 
 |  |  |                                 {field: 'maktx', title: '产品名称', align: 'center',width: 150}, | 
 |  |  |                                 {field: 'seqNo', title: '单据行号', align: 'center'}, | 
 |  |  |                                 {field: 'orderNo', title: '入库单号', align: 'center'}, | 
 |  |  |                                 {field: 'anfme', title: '待入库数量', align: 'center'}, | 
 |  |  |                                 {field: 'matnr', title: '产品ID', align: 'center'}, | 
 |  |  |                                 {field: 'maktx', title: '产品名称', align: 'center'}, | 
 |  |  |                                 // {field: 'maktx', title: '产品名称', align: 'center'}, | 
 |  |  |                                 {field: 'prodDate$', title: '生产日期', align: 'center',width: 150}, | 
 |  |  |                                 {field: 'quaStatus$', title: '检验状态', align: 'center',width: 100}, | 
 |  |  |                                 {field: 'rejectQty', title: '不合格数量', align: 'center',width: 100}, | 
 |  |  |                                 {field: 'rejectReason', title: '不合格原因', align: 'center',width: 150}, | 
 |  |  |                                 {field: 'prodDate$', title: '生产日期', align: 'center'}, | 
 |  |  |                                 {field: 'quaStatus$', title: '检验状态', align: 'center'}, | 
 |  |  |                                 {field: 'rejectQty', title: '不合格数量', align: 'center'}, | 
 |  |  |                                 {field: 'rejectReason', title: '不合格原因', align: 'center'}, | 
 |  |  |  | 
 |  |  |                             ]], | 
 |  |  |                             request: { | 
 |  |  | 
 |  |  |             title: (mData ? '修改' : '添加') + '订单状态', | 
 |  |  |             content: $('#editDialog').html(), | 
 |  |  |             success: function (layero, dIndex) { | 
 |  |  |                 layDateRender(); | 
 |  |  |                 layDateRender(mData); | 
 |  |  |                 form.val('detail', mData); | 
 |  |  |                 form.on('submit(editSubmit)', function (data) { | 
 |  |  |                     var loadIndex = layer.load(2); | 
 |  |  | 
 |  |  |                             }else { | 
 |  |  |                                 layer.msg(res.msg, {icon: 2}); | 
 |  |  |                             } | 
 |  |  |                             location.reload(); | 
 |  |  |                         } | 
 |  |  |                     }) | 
 |  |  |                     return false; | 
 |  |  | 
 |  |  |     // 时间选择器 | 
 |  |  |     function layDateRender() { | 
 |  |  |             layDate.render({ | 
 |  |  |         elem: '#modiTime\\$', | 
 |  |  |         type: 'datetime' | 
 |  |  |         elem: '#updateTime\\$', | 
 |  |  |         type: 'datetime', | 
 |  |  |         value: new Date() | 
 |  |  |     }); | 
 |  |  |         layDate.render({ | 
 |  |  |         elem: '#appeTime\\$', | 
 |  |  | 
 |  |  | // 提取产品 | 
 |  |  | var locDetlLayerIdx; | 
 |  |  | function getLocDetl() { | 
 |  |  |  | 
 |  |  |     locDetlLayerIdx = layer.open({ | 
 |  |  |         type: 2, | 
 |  |  |         title: '质检明细', | 
 |  |  | 
 |  |  |         success: function(layero, index){ | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function getbillData(){ | 
 |  |  |     return billNO; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function initOrderNo1() { | 
 |  |  |     $.ajax({ | 
 |  |  |         url: baseUrl+"/quality/orderNo/init1", | 
 |  |  |         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |         async: false, | 
 |  |  |         method: 'GET', | 
 |  |  |         success: function (res) { | 
 |  |  |             if (res.code === 200){ | 
 |  |  |                 $('#billNo').val(res.data) | 
 |  |  |             } else if (res.code === 403){ | 
 |  |  |                 top.location.href = baseUrl+"/"; | 
 |  |  |             } else { | 
 |  |  |                 notice.error({ | 
 |  |  |                     title: '消息通知', | 
 |  |  |                     message: res.msg | 
 |  |  |                 }); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  | } | 
 
 |  |  | 
 |  |  |                             }); | 
 |  |  |                             success = false; | 
 |  |  |                             return false; | 
 |  |  |                         }else { | 
 |  |  |                             var nowTime = new Date(); | 
 |  |  |                             var now = formatDate(nowTime); | 
 |  |  |                             form.val('inDate',{ | 
 |  |  |                                 "orderTime": now | 
 |  |  |                             }); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     var index = layer.load(1, {shade: [0.1,'#000']}); | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  | } | 
 |  |  | } | 
 |  |  |  | 
 |  |  |  function formatDate(date) { | 
 |  |  |     var y = date.getFullYear(); | 
 |  |  |     var m = date.getMonth() + 1; | 
 |  |  |     m = m < 10 ? '0' + m : m; | 
 |  |  |     var d = date.getDate(); | 
 |  |  |     d = d < 10 ? ('0' + d) : d; | 
 |  |  |     return y + '-' + m + '-' + d; | 
 |  |  | }; | 
 
 |  |  | 
 |  |  |             {type: 'checkbox'} | 
 |  |  |             ,{field: 'id', align: 'center',title: 'ID', hide:true} | 
 |  |  |             ,{field: 'hostId', align: 'center',title: '', hide:true} | 
 |  |  |             ,{field: 'orderId$', align: 'center',title: '订单', width: 185} | 
 |  |  |             ,{field: 'orderNo', align: 'center',title: '单据编号', width: 185} | 
 |  |  |             ,{field: 'anfme', align: 'center',title: '应入库量', width: 100} | 
 |  |  |             ,{field: 'inQty', align: 'center',title: '已入库量', width: 100} | 
 |  |  |             ,{field: 'matnr', align: 'center',title: '商品编码'} | 
 |  |  | 
 |  |  |                 form.val('inDetail',{ | 
 |  |  |                     "remain": remain | 
 |  |  |                 }); | 
 |  |  |  | 
 |  |  |                 form.val('inDetail',data); | 
 |  |  |  | 
 |  |  |                 form.on('submit(inLoc)',function (data) { | 
 |  |  |  | 
 |  |  |                     var loc =  insXmSel.getValue('valueStr'); | 
 |  |  |                     var storeQty =data.field.remain; | 
 |  |  |  | 
 |  |  |                     if(storeQty> data.field.anfme - data.field.inQty || storeQty<=0){ | 
 |  |  |                         layer.msg("数量不对"); | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |                     if(loc===""){ | 
 |  |  |                         layer.msg("库位号为空"); | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/receiveDetl/addIn" | 
 |  |  |                         ,headers: {'token':localStorage.getItem('token')} | 
 |  |  | 
 |  |  |                             layer.closeAll(); | 
 |  |  |                             if(res.code === 200){ | 
 |  |  |                                 layer.msg(res.msg); | 
 |  |  |                                 tableReload(); | 
 |  |  |                             } | 
 |  |  |                             if (res.code === 500){ | 
 |  |  |                                 layer.msg(res.msg); | 
 
 |  |  | 
 |  |  | <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"> | 
 |  |  |             <input class="layui-input" type="text" name="bill_no" placeholder="检验编号" autocomplete="off"> | 
 |  |  |         </div> | 
 |  |  |     </div> | 
 |  |  |     <!-- 待添加 --> | 
 |  |  | 
 |  |  | </body> | 
 |  |  | <!-- 表单弹窗 --> | 
 |  |  | <script type="text/html" id="editDialog"> | 
 |  |  |     <form id="detail" lay-filter="detail" class="layui-form admin-form"> | 
 |  |  |     <div 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="hostId" placeholder="请输入"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="layui-form-item"> | 
 |  |  |                     <label class="layui-form-label layui-form-required">编号: </label> | 
 |  |  |                     <div class="layui-input-block"> | 
 |  |  | 
 |  |  |                 <div class="layui-form-item"> | 
 |  |  |                     <label class="layui-form-label">检验单号: </label> | 
 |  |  |                     <div class="layui-input-block"> | 
 |  |  |                         <input class="layui-input" name="billNo" placeholder="请输入检验单号"> | 
 |  |  |                         <input class="layui-input" name="billNo" id="billNo" placeholder="请输入检验单号" lay-verify="required"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="layui-form-item"> | 
 |  |  | 
 |  |  |                 <div class="layui-form-item"> | 
 |  |  |                     <label class="layui-form-label">修改人员: </label> | 
 |  |  |                     <div class="layui-input-block cool-auto-complete"> | 
 |  |  |                         <input class="layui-input" name="modiUser" placeholder="请输入修改人员" style="display: none"> | 
 |  |  |                         <input class="layui-input" name="updateBy" placeholder="请输入修改人员" style="display: none"> | 
 |  |  |                         <input id="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入修改人员" onfocus=this.blur()> | 
 |  |  |                         <div class="cool-auto-complete-window"> | 
 |  |  |                             <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> | 
 |  |  | 
 |  |  |                 <div class="layui-form-item"> | 
 |  |  |                     <label class="layui-form-label">修改时间: </label> | 
 |  |  |                     <div class="layui-input-block"> | 
 |  |  |                         <input class="layui-input" name="modiTime" id="modiTime$" placeholder="请输入修改时间"> | 
 |  |  |                         <input class="layui-input" name="updateTime" id="updateTime$" placeholder="请输入修改时间"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="layui-form-item"> | 
 |  |  |                     <label class="layui-form-label">创建者: </label> | 
 |  |  |                     <div class="layui-input-block cool-auto-complete"> | 
 |  |  |                         <input class="layui-input" name="appeUser" placeholder="请输入创建者" style="display: none"> | 
 |  |  |                         <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入创建者" onfocus=this.blur()> | 
 |  |  |                         <div class="cool-auto-complete-window"> | 
 |  |  |                             <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> | 
 |  |  |                             <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> | 
 |  |  |                             </select> | 
 |  |  |                         </div> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="layui-form-item"> | 
 |  |  |                     <label class="layui-form-label">添加时间: </label> | 
 |  |  |                     <div class="layui-input-block"> | 
 |  |  |                         <input class="layui-input" name="appeTime" id="appeTime$" placeholder="请输入添加时间"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  | <!--                <div class="layui-form-item">--> | 
 |  |  | <!--                    <label class="layui-form-label">创建者: </label>--> | 
 |  |  | <!--                    <div class="layui-input-block cool-auto-complete">--> | 
 |  |  | <!--                        <input class="layui-input" name="appeUser" placeholder="请输入创建者" style="display: none">--> | 
 |  |  | <!--                        <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入创建者" onfocus=this.blur()>--> | 
 |  |  | <!--                        <div class="cool-auto-complete-window">--> | 
 |  |  | <!--                            <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">--> | 
 |  |  | <!--                            <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">--> | 
 |  |  | <!--                            </select>--> | 
 |  |  | <!--                        </div>--> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--                <div class="layui-form-item">--> | 
 |  |  | <!--                    <label class="layui-form-label">添加时间: </label>--> | 
 |  |  | <!--                    <div class="layui-input-block">--> | 
 |  |  | <!--                        <input class="layui-input" name="appeTime" id="appeTime$" placeholder="请输入添加时间">--> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                </div>--> | 
 |  |  |  | 
 |  |  |              </div> | 
 |  |  |         </div> | 
 |  |  |         <hr class="layui-bg-gray"> | 
 |  |  |         <div class="layui-form-item text-right"> | 
 |  |  |             <button class="layui-btn layui-btn-primary" id="autoNo" onclick="initOrderNo1()">编号自动生成</button> | 
 |  |  |             <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> | 
 |  |  |     </div> | 
 |  |  | </script> | 
 |  |  | </html> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |     <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="checkQuality">检验</a> | 
 |  |  | </script> | 
 |  |  | <script> | 
 |  |  |  | 
 |  |  |     var pageCurr; | 
 |  |  |     var billNo=parent.getbillData().billNo; | 
 |  |  |     function getCol() { | 
 |  |  |         var cols = [ | 
 |  |  |             // {type: 'checkbox', fixed: 'left'}, | 
 |  |  | 
 |  |  |             elem: '#stockOut', | 
 |  |  |             headers: {token: localStorage.getItem('token')}, | 
 |  |  |             url: baseUrl+'/qualityDetl/list/auth', | 
 |  |  |             where:{ | 
 |  |  |                 bill_no:billNo | 
 |  |  |             }, | 
 |  |  |             page: true, | 
 |  |  |             limit: 10, | 
 |  |  |             even: true, | 
 |  |  | 
 |  |  |                 statusCode: 200 | 
 |  |  |             }, | 
 |  |  |             done: function(res, curr, count) { | 
 |  |  |                 console.log(res.data) | 
 |  |  |                 if (res.code === 403) { | 
 |  |  |                     top.location.href = baseUrl+"/"; | 
 |  |  |                 } | 
 
 |  |  | 
 |  |  |     <script type="text/html" id="toolbar"> | 
 |  |  |         <div class="layui-form"> | 
 |  |  |             <div class="layui-btn-container"> | 
 |  |  |                 <!-- 2.启动出库 --> | 
 |  |  |                 <!-- 2.入库出库 --> | 
 |  |  |                 <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="createDoc">开始生成</button> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  | 
 |  |  | <div id="getOrderNo" style="display: none"> | 
 |  |  |     <!-- 订单编号、单据日期、单据类型、项目编号、客户编号、 --> | 
 |  |  |     <div class="layui-form"> | 
 |  |  |         <div class="layui-form-item"> | 
 |  |  |         <div id="inDate" class="layui-form-item"> | 
 |  |  |             <label class="layui-form-label layui-form-required">单据类型:</label> | 
 |  |  |             <div class="layui-input-block"> | 
 |  |  |                 <select id="docType" name="docType" lay-verType="tips" lay-verify="required" required> | 
 |  |  | 
 |  |  |         <div class="layui-form-item"> | 
 |  |  |             <label class="layui-form-label layui-form-required">单据日期:</label> | 
 |  |  |             <div class="layui-input-block"> | 
 |  |  |                 <input id="orderTime" name="orderTime" placeholder="请输入单据日期" class="layui-input icon-date" lay-verType="tips" lay-verify="required" autocomplete="off"> | 
 |  |  |                 <input id="orderTime" value="2022" name="orderTime" placeholder="请输入单据日期" class="layui-input icon-date" lay-verType="tips" lay-verify="required" autocomplete="off"> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  |         <div class="layui-form-item"> | 
 
 |  |  | 
 |  |  |                             <div class="layui-inline"> | 
 |  |  |                                 <label class="layui-form-label">入库单编号:</label> | 
 |  |  |                                 <div class="layui-input-inline"> | 
 |  |  |                                     <input name="order_no" class="layui-input" placeholder="输入入库单编号"/> | 
 |  |  |                                     <input name="order_no" class="layui-input" placeholder="单据编号"/> | 
 |  |  |                                 </div> | 
 |  |  |                             </div> | 
 |  |  |                             <div class="layui-inline">  | 
 
 |  |  | 
 |  |  | <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"> | 
 |  |  |             <input class="layui-input" type="text" name="order_no" placeholder="单据编号" autocomplete="off"> | 
 |  |  |         </div> | 
 |  |  |     </div> | 
 |  |  |     <!-- 待添加 --> |