Browse Source

第一次测试

lwx_dev
erdanergou 3 years ago
parent
commit
2936f4cf33
  1. 130
      target/classes/com/dreamchaser/depository_manage/mapper/ConstructionUnitMapper.xml
  2. 33
      target/classes/static/js/lay-module/customMethod/iframeEdit.js
  3. 90
      target/classes/static/js/lay-module/customMethod/sendRequest.js
  4. 863
      target/classes/static/js/stockTaking/stockTakingForLocationCard.js
  5. 336
      target/classes/static/js/stockTaking/stockTakingForLocationTable.js
  6. 386
      target/classes/static/js/stockTaking/stockTakingForMaterial.js
  7. BIN
      target/classes/static/lib/font-awesome-4.7.0/fonts/simsun.ttc
  8. BIN
      target/classes/static/upload/PrintTemplate.xlsx
  9. 1771
      target/classes/templates/pages/applicationForStorageCenter/application-out.html
  10. 545
      target/classes/templates/pages/applicationForStorageCenter/application-out_back.html
  11. 645
      target/classes/templates/pages/applicationForStorageCenter/application-out_scanQrCode.html
  12. 898
      target/classes/templates/pages/applicationForStorageCenter/applicationOutForGroup.html
  13. 115
      target/classes/templates/pages/constructionunit/constructionunit_add.html
  14. 112
      target/classes/templates/pages/constructionunit/constructionunit_edit.html
  15. 346
      target/classes/templates/pages/constructionunit/constructionunit_out.html
  16. 182
      target/classes/templates/pages/place/place_editForTray.html
  17. 56
      target/classes/templates/pages/post/selectConstructionUnit.html
  18. 57
      target/classes/templates/pages/post/selectPost.html
  19. 563
      target/classes/templates/pages/stockTaking/stockTakingForTable.html
  20. 1584
      target/classes/templates/pages/stockTaking/stockTaking_back.html
  21. 111
      target/classes/templates/pages/user/user-addForIn.html
  22. 112
      target/classes/templates/pages/user/user-role-editForIn.html
  23. BIN
      target/depository.war.original
  24. 4
      target/depository/WEB-INF/classes/META-INF/MANIFEST.MF
  25. 17
      target/depository/WEB-INF/classes/META-INF/spring-configuration-metadata.json
  26. 87
      target/depository/WEB-INF/classes/application-test.yml
  27. 5
      target/depository/WEB-INF/classes/application.yml
  28. 14
      target/depository/WEB-INF/classes/banner.txt
  29. 108
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml
  30. 35
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/CallBackLogMapper.xml
  31. 168
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml
  32. 130
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/ConstructionUnitMapper.xml
  33. 390
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml
  34. 1725
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  35. 391
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/GroupMapper.xml
  36. 1086
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  37. 260
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml
  38. 170
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml
  39. 500
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml
  40. 159
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/QrCodeMapper.xml
  41. 265
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml
  42. 332
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml
  43. 338
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/StockTakingMapper.xml
  44. 153
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml
  45. 381
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/UserMapper.xml
  46. 143
      target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml
  47. 155
      target/depository/WEB-INF/classes/logback-spring.xml
  48. 26
      target/depository/WEB-INF/classes/redisson-config.yml
  49. 4
      target/depository/WEB-INF/classes/static/api/clear.json
  50. 226
      target/depository/WEB-INF/classes/static/api/init.json
  51. 220
      target/depository/WEB-INF/classes/static/api/init_checker.json
  52. 226
      target/depository/WEB-INF/classes/static/api/init_reviewer.json
  53. 100
      target/depository/WEB-INF/classes/static/api/init_user.json
  54. 254
      target/depository/WEB-INF/classes/static/api/menus.json
  55. 139
      target/depository/WEB-INF/classes/static/api/table-in.json
  56. 136
      target/depository/WEB-INF/classes/static/api/table-out.json
  57. 95
      target/depository/WEB-INF/classes/static/api/table-user.json
  58. 87
      target/depository/WEB-INF/classes/static/api/tableSelect.json
  59. 225
      target/depository/WEB-INF/classes/static/api/test.json
  60. 10
      target/depository/WEB-INF/classes/static/api/upload.json
  61. 15681
      target/depository/WEB-INF/classes/static/css/JcPrinter/chalk_index.css
  62. BIN
      target/depository/WEB-INF/classes/static/css/JcPrinter/fonts/element-icons.ttf
  63. BIN
      target/depository/WEB-INF/classes/static/css/JcPrinter/fonts/element-icons.woff
  64. 217
      target/depository/WEB-INF/classes/static/css/JcPrinter/style.css
  65. 86
      target/depository/WEB-INF/classes/static/css/inputTag.css
  66. 104
      target/depository/WEB-INF/classes/static/css/inputTag.less
  67. 934
      target/depository/WEB-INF/classes/static/css/layuimini.css
  68. 102
      target/depository/WEB-INF/classes/static/css/public.css
  69. 95
      target/depository/WEB-INF/classes/static/css/themes/default.css
  70. BIN
      target/depository/WEB-INF/classes/static/images/bg.jpg
  71. BIN
      target/depository/WEB-INF/classes/static/images/cam.png
  72. BIN
      target/depository/WEB-INF/classes/static/images/captcha.jpg
  73. BIN
      target/depository/WEB-INF/classes/static/images/donate_qrcode.png
  74. BIN
      target/depository/WEB-INF/classes/static/images/favicon.ico
  75. BIN
      target/depository/WEB-INF/classes/static/images/home.png
  76. BIN
      target/depository/WEB-INF/classes/static/images/icon-login.png
  77. BIN
      target/depository/WEB-INF/classes/static/images/loginbg.png
  78. BIN
      target/depository/WEB-INF/classes/static/images/logo.jpg
  79. BIN
      target/depository/WEB-INF/classes/static/images/logo.png
  80. BIN
      target/depository/WEB-INF/classes/static/images/logo_back.ico
  81. BIN
      target/depository/WEB-INF/classes/static/images/logo_back.jpg
  82. BIN
      target/depository/WEB-INF/classes/static/images/logo_back.png
  83. BIN
      target/depository/WEB-INF/classes/static/images/search.ico
  84. BIN
      target/depository/WEB-INF/classes/static/images/search.png
  85. BIN
      target/depository/WEB-INF/classes/static/images/sousuo.png
  86. BIN
      target/depository/WEB-INF/classes/static/images/vid.png
  87. 14
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableBarCode.js
  88. 12
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableGraph.js
  89. 10
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableImage.js
  90. 9
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableLine.js
  91. 9
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableQrCode.js
  92. 17
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableText.js
  93. 8
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/InitDrawingBoard.js
  94. 3
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/generateImagePreviewImage.js
  95. 4
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/initSdk.js
  96. 3
      target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/picturePrint.js
  97. 1
      target/depository/WEB-INF/classes/static/js/JcPrinter/element-ui_lib_index.js
  98. BIN
      target/depository/WEB-INF/classes/static/js/JcPrinter/font/SourceHanSans-Regular.ttc
  99. BIN
      target/depository/WEB-INF/classes/static/js/JcPrinter/font/ZT001.ttf
  100. 369
      target/depository/WEB-INF/classes/static/js/JcPrinter/font/language.json

130
target/classes/com/dreamchaser/depository_manage/mapper/ConstructionUnitMapper.xml

@ -0,0 +1,130 @@
<?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="com.dreamchaser.depository_manage.mapper.ConstructionUnitMapper">
<resultMap id="constructionUnitMap" type="com.dreamchaser.depository_manage.entity.ConstructionUnit">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="state" property="state" jdbcType="INTEGER" />
<result column="introduce" property="introduce" jdbcType="VARCHAR" />
<result column="address" property="address" jdbcType="VARCHAR" />
<result column="createTime" property="createTime" jdbcType="INTEGER" />
</resultMap>
<sql id="allColumns">
id,`name`,state,introduce,address,createTime
</sql>
<insert id="addConstructionUnit">
insert into constructionunit(id,`name`,state,introduce,address,createTime)
values (
#{id},
#{name},
#{state},
#{introduce},
#{address},
#{createTime}
)
</insert>
<select id="findConstructionUnitAll" resultMap="constructionUnitMap">
select
<include refid="allColumns"/>
from constructionunit
where state = 1
</select>
<select id="findConstructionUnitByCondition" parameterType="map" resultMap="constructionUnitMap">
select
<include refid="allColumns"/>
from constructionunit
where 1 = 1
<if test="name != null and name != ''">
and `name` like CONCAT('%',#{name},'%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
<if test="introduce != null and introduce != ''">
and introduce like concat('%',#{introduce},'%')
</if>
<if test="address != null and address != ''">
and address like concat('%',#{address},'%')
</if>
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findConstructionUnitCountByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from constructionunit
where 1 = 1
<if test="name != null and name != ''">
and `name` like CONCAT('%',#{name},'%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
<if test="introduce != null and introduce != ''">
and introduce like concat('%',#{introduce},'%')
</if>
<if test="address != null and address != ''">
and address like concat('%',#{address},'%')
</if>
</select>
<select id="findConstructionUnitById" resultMap="constructionUnitMap" parameterType="int">
select
<include refid="allColumns"/>
from constructionunit
where id = #{id}
</select>
<update id="updateConstructionUnit">
update constructionunit
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="introduce != null and introduce != ''">
introduce = #{introduce},
</if>
<if test="address != null and address != ''">
address = #{address}
</if>
</set>
where id = #{id}
</update>
<update id="updateConstructionUnitState">
update constructionunit
<set>
<if test="state != null and state != ''">
state = #{state},
</if>
</set>
where id = #{id}
</update>
<delete id="deleteConstructionUnitById" parameterType="int">
delete from constructionunit where id = #{id}
</delete>
<delete id="deleteConstructionUnitByIds" parameterType="list">
delete from constructionunit where id in
<foreach collection="list" item="id" index="index" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

33
target/classes/static/js/lay-module/customMethod/iframeEdit.js

@ -0,0 +1,33 @@
layui.define(["layer", "jquery"], function (exports) {
var iframeEdit = {
populateIframe: function (iframe, url, headers) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onreadystatechange = handler;
xhr.responseType = 'blob';
headers.forEach(function (header) {
xhr.setRequestHeader(header[0], header[1]);
});
xhr.send();
function handler() {
if (this.readyState === this.DONE) {
if (this.status === 200) {
// this.response is a Blob, because we set responseType above
iframe.src = URL.createObjectURL(this.response);
} else {
console.error('XHR failed', this);
}
}
}
},
setPDF: function (blob) {
document.querySelector('#blob').src = URL.createObjectURL(blob);
}
};
exports('iframeEdit', iframeEdit);
})

90
target/classes/static/js/lay-module/customMethod/sendRequest.js

@ -0,0 +1,90 @@
layui.define(["layer", "jquery"], function (exports) {
var $ = layui.$,
layer = layui.layer;
var sendRequest = {
sendGetForNoLayer: function (url, reqData, rollback) {
$.ajax({
url: url,
type: "GET",
data: reqData,
contentType: "application/json;charset=utf-8",
beforeSend: function (xhr) {
xhr.setRequestHeader("user-key", window.localStorage.getItem("key"));
xhr.setRequestHeader("user-token", window.localStorage.getItem("token"));
},
success: function (d) {
rollback(d);
},
error: function (e) {
console.log(e)
}
})
},
sendGetForLayer: function (url, reqData, rollback) {
$.ajax({
url: url,
type: "GET",
dataType: 'json',
data: reqData,
contentType: "application/json;charset=utf-8",
beforeSend: function (xhr) {
xhr.setRequestHeader("user-key", window.localStorage.getItem("key"));
xhr.setRequestHeader("user-token", window.localStorage.getItem("token"));
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (d) {
rollback(d);
}
})
},
sendPostForNoLayer: function (url, reqData, rollback) {
$.ajax({
url: url,
type: "POST",
dataType: 'json',
data: JSON.stringify(reqData),
contentType: "application/json;charset=utf-8",
beforeSend: function (xhr) {
xhr.setRequestHeader("user-key", window.localStorage.getItem("key"));
xhr.setRequestHeader("user-token", window.localStorage.getItem("token"));
},
success: function (d) {
rollback(d);
}
})
},
sendPostForLayer: function (url, reqData, rollback) {
$.ajax({
url: url,
type: "POST",
dataType: 'json',
data: JSON.stringify(reqData),
contentType: "application/json;charset=utf-8",
beforeSend: function () {
xhr.setRequestHeader("user-key", window.localStorage.getItem("key"));
xhr.setRequestHeader("user-token", window.localStorage.getItem("token"));
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (d) {
rollback(d);
}
})
},
};
exports('sendRequest', sendRequest);
});

863
target/classes/static/js/stockTaking/stockTakingForLocationCard.js

@ -0,0 +1,863 @@
// 用于添加标签
function addItem(obj) {
}
// 用于删除标签
function deleteItem(obj) {
}
// 用于加载物料选择菜单
function selectMaterialForLocation() {
}
// 用于通过物料名称获取物料
function selectMaterialByNameForLocation() {
}
// 用于编码查询
function selectCodeForLocation(obj) {
}
// 用于扫描物料编码
function scanMaterialCodeForTaking() {
}
// 用于二次渲染页面
function Coverpage() {
}
// 用于计算盘点结果
function calculate(obj) {
}
// 用于监听下拉框变化
function changeSelectValueForUnit(obj){
}
// 用于监听下拉框变化
function changeSelectValueForProducedDate(obj){
}
// 用于暂存卡片个数
let params = [];
// 用于卡片编号
var NewIdNumber = 1;
let needToUpdate = {};
layui.use(['form', 'step', 'flow', 'laydate', 'inputTag'], function () {
var $ = layui.$,
form = layui.form,
step = layui.step;
// 实现卡片添加
addItem = function (obj) {
// 获取父元素id
var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1;
var materialItem = `
<div class="layui-card-body" id=` + "InventoryDetails" + NewIdNumber + ` style="padding-right: 0px">
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料名称:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input"
style="border-style: none"
id="openSonByMaterialForLocation" onblur="selectMaterialByNameForLocation(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search" style="display: inline"
id="selectMaterialForLocation" onclick="selectMaterialForLocation(this)"></i>
</div>
<input type="text" name=` + "mid" + NewIdNumber + ` class="layui-input" id=` + "midForLocation" + NewIdNumber + `
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input id=` + "codeForLocation" + NewIdNumber + ` name= ` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码" value=""
onblur="selectCodeForLocation(this)"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanMaterialCodeForTaking(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料类型</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly
lay-verify="required"/>
<input type="text" id=` + "materialTypeId" + NewIdNumber + ` name=` + "typeId" + NewIdNumber + ` placeholder="请选择物料类型" class="layui-input" style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">材质:</label>
<div class="layui-input-block">
<input name=` + "texture" + NewIdNumber + ` type="text" placeholder="请填写材质名称" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">规格型号:</label>
<div class="layui-input-block">
<input name=` + "version" + NewIdNumber + ` type="text" placeholder="请填写规格型号" class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计量单位:</label>
<div class="layui-input-block">
<select onchange="changeSelectValueForUnit(this)" class="layui-form-select" name=` + "unit" + NewIdNumber + ` id=` + "unit" + NewIdNumber + ` ></select>
</div>
</div>
<div class="layui-form-item" style="display: none" id=` + "producedDateItem" + NewIdNumber + ` onchange="changeSelectValueForProducedDate(this)" class="layui-form-select">
<label class="layui-form-label">生产日期:</label>
<div class="layui-input-block">
<select name=` + "producedDate" + NewIdNumber + ` id=` + "producedDate" + NewIdNumber + ` onchange="changeSelectValueForProducedDate(this)" class="layui-form-select">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">库存数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input" readonly
name=` + "oldInventory" + NewIdNumber + ` id=` + "oldInventory" + NewIdNumber + ` lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盘点数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input" onblur="calculate(this)"
name=` + "newInventory" + NewIdNumber + ` lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盘点结果:</label>
<div class="layui-input-block">
<select name=` + "takingResult" + NewIdNumber + ` id=` + "result" + NewIdNumber + ` class="layui-form-select">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盈亏数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input" readonly id=` + "Inventory_number" + NewIdNumber + `
name=` + "inventory" + NewIdNumber + ` lay-verify="required"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline"
onclick="addItem(this)"></i>
</div>
`;
// 获取当前高度
var height = parseInt(($("#stepForm1").css('height')).split("px")[0]);
params.push(NewIdNumber);
// $("#form1").css("height", height + 682 + 'px');
$("#stepForm1").css("height", height + 625 + 'px');
$("#" + parentId).after(materialItem);
};
// 实现卡片删除
deleteItem = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("InventoryDetails")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm1").css('height')).split("px")[0]);
$("#stepForm1").css("height", height - 625 + 'px');
params = remove(params, parentId);
reparent.removeChild(parent);
};
//删除数组中指定元素
function remove(arr, item) {
var result = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
continue;
}
result.push(arr[i]);
}
return result;
}
// 用于打开物料树形菜单
selectMaterialForLocation = function (obj) {
if (depositoryId !== undefined && departmentManagerIdForLocation !== undefined && departmentManagerIdForLocation !== "") {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
// 物料编码父级
var codeChildren = parent.childNodes[7];
// 物料名称父级
var materialChildren = parent.childNodes[5];
// 物料类型父级
var typeChildren = parent.childNodes[9];
// 材质父级
var textureChildren = parent.childNodes[11];
// 规格型号父级
var versionChildren = parent.childNodes[13];
// 计量单位父级
var unitChildren = parent.childNodes[15];
// 库存数量父级
var inventoryChildren = parent.childNodes[19];
// 编码条目
var codeItem = codeChildren.childNodes[3].childNodes[1];
// 具体条码
var codeValue = codeItem.childNodes[1];
// 物料条目
var materialItem = materialChildren.childNodes[3].childNodes;
// 物料名称
var materialName = materialItem[1].childNodes[1];
// 物料编码
var materialId = materialItem[3];
// 输入的物料名称
var mname = materialName.value;
// 物料种类条目
var materialTypeItem = typeChildren.childNodes[3].childNodes;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/getMaterialAll?mname=' + mname + '&type=3&clickObj=' + parentId + '&placeId=' + placeId + '&depositoryId=' + depositoryId,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
var mid = materialId.value;
if (mid !== '') {
$.ajax({
url: "/material/findInventoryByIdAndPid?mid=" + mid + "&pid=" + placeId,
type: "get",
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var material = d.data.materialById;
var code = material.code;
if (code === undefined) {
code = "";
}
codeValue.value = code;
materialTypeItem[1].value = material.typeName;
materialTypeItem[3].value = material.typeId;
textureChildren.childNodes[3].childNodes[1].value = material.texture === null || material.texture === undefined ? '' : material.texture;
versionChildren.childNodes[3].childNodes[1].value = material.version === null || material.version === undefined ? '' : material.version;
inventoryChildren.childNodes[3].childNodes[1].value = material.quantity;
var materialAndBarCodeList = material.materialAndBarCodeList;
var idNumber = materialId.name.split("mid")[1];
let unitItem = $("#unit" + idNumber);
unitItem.empty();
unitItem.append(new Option(material.unit, "-1"));
let splitInfoList = material.splitInfoList;
if (splitInfoList.length > 0) {
$.each(splitInfoList, function (index, item) {
unitItem.append(new Option(item.newUnit, item.newUnit));
})
}
form.render();
var shelfLife = material.shelfLife;
if (shelfLife !== null && shelfLife !== undefined) {
$("#" + "producedDateItem" + idNumber).show();
var producedDateList = d.data['producedDateList'];
if (producedDateList !== null && producedDateList !== undefined && producedDateList.length > 0) {
$.each(producedDateList, function (index, item) {
$("#" + "producedDate" + idNumber).append(new Option(item, item));
})
}
form.render();
} else {
$("#" + "producedDateItem" + idNumber).hide();
form.render();
}
}
});
}
}
});
} else {
layer.msg("请先选择盘点位置或负责人", {
icon: 0,
time: 500
})
}
};
// 用于实现通过编码查询物料
selectCodeForLocation = function (obj) {
if (depositoryId !== undefined && departmentManagerIdForLocation !== undefined && departmentManagerIdForLocation !== "") {
// 输入code
var code = obj.value;
if(code.trim() !== ""){
var parent = obj.parentNode.parentNode.parentNode.parentNode;
// 物料编码父级
var codeChildren = parent.childNodes[7];
// 物料名称父级
var materialChildren = parent.childNodes[5];
// 物料类型父级
var typeChildren = parent.childNodes[9];
// 材质父级
var textureChildren = parent.childNodes[11];
// 规格型号父级
var versionChildren = parent.childNodes[13];
// 计量单位父级
var unitChildren = parent.childNodes[15];
// 库存数量父级
var inventoryChildren = parent.childNodes[19];
// 编码条目
var codeItem = codeChildren.childNodes[3].childNodes[1];
// 物料条目
var materialItem = materialChildren.childNodes[3].childNodes;
// 物料名称
var materialName = materialItem[1].childNodes[1];
// 物料编码
var materialId = materialItem[3];
// 物料种类条目
var materialTypeItem = typeChildren.childNodes[3].childNodes;
// 获取对应元素
var req = {};
req.code = code;
req.depositoryId = depositoryId;
req.placeId = placeId;
$.ajax({
url: "/material/findMatrialByCodeForTaking",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if (d == null) {
layer.msg("该位置暂未该物品,请确认是否输入正确");
materialName.value = "";
materialId.value = "";
obj.value = "";
materialTypeItem[1].value = "";
materialTypeItem[3].value = "";
textureChildren.childNodes[3].childNodes[1].value = "";
versionChildren.childNodes[3].childNodes[1].value = "";
unitChildren.childNodes[3].childNodes[1].value = "";
inventoryChildren.childNodes[3].childNodes[1].value = "";
} else {
materialName.value = d.mname;
materialId.value = d.id;
materialTypeItem[1].value = d.typeName;
materialTypeItem[3].value = d.typeId;
textureChildren.childNodes[3].childNodes[1].value = d.texture === null || d.texture === undefined ? '' : d.texture;
versionChildren.childNodes[3].childNodes[1].value = d.version === null || d.version === undefined ? '' : d.version;
inventoryChildren.childNodes[3].childNodes[1].value = d.quantity;
// 获取物料与条形码的对应关系
var materialAndBarCodeList = d["materialAndBarCodeList"];
var idNumber = materialId.name.split("mid")[1];
let unit = $("#unit" + idNumber);
unit.empty();
unit.append(new Option(d.baseUnit, "-1"));
if (d.splitInfoList !== null && d.splitInfoList.length > 0) {
$.each(d.splitInfoList, function (index, item) {
unit.append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
form.render();
}
var producedDateItem = $("#producedDate" + idNumber);
if (producedDateItem.length > 0) {
producedDateItem.empty();
}
var shelfLife = d.shelfLife;
if (shelfLife !== null && shelfLife !== undefined) {
$("#" + "producedDateItem" + idNumber).show();
var producedDateList = d['producedDateList'];
if (producedDateList != null && producedDateList != undefined && producedDateList.length > 0) {
$.each(producedDateList, function (index, item) {
$("#" + "producedDate" + idNumber).append(new Option(item, item));
})
}
form.render();
} else {
$("#" + "producedDateItem" + idNumber).hide();
form.render();
}
}
}
});
}
} else {
layer.msg("请先选择盘点位置或负责人", {
icon: 0,
time: 500
},function () {
obj.value = "";
})
}
};
// 通过物料名称获取物料
selectMaterialByNameForLocation = function (obj) {
if (depositoryId !== undefined && departmentManagerIdForLocation !== undefined && departmentManagerIdForLocation !== "") {
// 如果已经选择盘点的位置
// 输入物料名称
var data = obj.value;
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
// 物料编码父级
var codeChildren = parent.childNodes[7];
// 物料名称父级
var materialChildren = parent.childNodes[5];
// 物料类型父级
var typeChildren = parent.childNodes[9];
// 材质父级
var textureChildren = parent.childNodes[11];
// 规格型号父级
var versionChildren = parent.childNodes[13];
// 计量单位父级
var unitChildren = parent.childNodes[15];
// 库存数量父级
var inventoryChildren = parent.childNodes[19];
// 编码条目
var codeItem = codeChildren.childNodes[3].childNodes[1];
// 具体条码
var codeValue = codeItem.childNodes[1];
// 物料条目
var materialItem = materialChildren.childNodes[3].childNodes;
// 物料名称
var materialName = materialItem[1].childNodes[1];
// 物料编码
var materialId = materialItem[3];
// 物料种类条目
var materialTypeItem = typeChildren.childNodes[3].childNodes;
var req = {};
data = data.split(",")[0];
if(data !== ""){
req.mname = data;
req.depositoryId = depositoryId;
req.placeId = placeId;
$.ajax({
url: "/material/findMaterialForTaking",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count > 1) {
layer.msg("请点击右侧搜索确定物品");
materialId.value = "";
codeValue.value = "";
textureChildren.childNodes[3].childNodes[1].value = "";
versionChildren.childNodes[3].childNodes[1].value = "";
unitChildren.childNodes[3].childNodes[1].value = "";
inventoryChildren.childNodes[3].childNodes[1].value = "";
return false;
} else if (d.count === 0) {
layer.msg("没有该物品,请确认输入是否正确");
materialId.value = "";
codeValue.value = "";
materialName.value = "";
materialTypeItem[1].value = '';
materialTypeItem[3].value = "";
textureChildren.childNodes[3].childNodes[1].value = "";
versionChildren.childNodes[3].childNodes[1].value = "";
unitChildren.childNodes[3].childNodes[1].value = "";
inventoryChildren.childNodes[3].childNodes[1].value = "";
return false;
} else {
var material = d.data;
materialName.value = material.mname;
materialId.value = material.id;
codeValue.value = material.code;
materialTypeItem[1].value = material.typeName;
materialTypeItem[3].value = material.typeId;
textureChildren.childNodes[3].childNodes[1].value = material.texture === null || material.texture === undefined ? '' : material.texture;
versionChildren.childNodes[3].childNodes[1].value = material.version === null || material.version === undefined ? '' : material.version;
inventoryChildren.childNodes[3].childNodes[1].value = material.baseUnitQuantity;
var idNumber = materialId.name.split("mid")[1];
// 获取物料与条形码的对应关系
let unitItem = $("#unit" + idNumber);
unitItem.empty();
unitItem.append(new Option(material.baseUnit, "-1"));
let splitInfoList = material.splitInfoList;
if (splitInfoList.length > 0) {
$.each(splitInfoList, function (index, item) {
unitItem.append(new Option(item.newUnit, item.newUnit));
})
}
var shelfLife = d.shelfLife;
if (shelfLife !== null && shelfLife !== undefined) {
$("#" + "producedDateItem" + idNumber).show();
var producedDateList = d['producedDateList'];
if (producedDateList !== null && producedDateList !== undefined && producedDateList.length > 0) {
$.each(producedDateList, function (index, item) {
$("#" + "producedDate" + idNumber).append(new Option(item, item));
})
}
form.render();
} else {
$("#" + "producedDateItem" + idNumber).hide();
form.render();
}
}
}
});
}
} else {
layer.msg("请先选择盘点位置或负责人", {
icon: 0,
time: 500
},function () {
obj.value = "";
})
}
};
// 用于二次渲染页面
Coverpage = function (num, obj) {
// 获取待添加父类
NewIdNumber = num;
if (num === 0) { // 如果是第一个
NewIdNumber = "";
}
var texture = obj.texture === null || obj.texture === undefined ? "" : obj.texture;
var version = obj.version === null || obj.version === undefined ? "" : obj.version;
var unit = obj.unit === null || obj.unit === undefined ? "" : obj.unit;
var materialItem = `
<div class="layui-card-body" id=` + "InventoryDetails" + NewIdNumber + ` style="padding-right: 0px">
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料名称:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" value="${obj.mname}"
style="border-style: none"
id="openSonByMaterialForLocation" onblur="selectMaterialByNameForLocation(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search" style="display: inline"
id="selectMaterialForLocation" onclick="selectMaterialForLocation(this)"></i>
</div>
<input type="text" name=` + "mid" + NewIdNumber + ` class="layui-input" id=` + "midForLocation" + NewIdNumber + `
value="${obj.mid}" style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input id=` + "codeForLocation" + NewIdNumber + ` name= ` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码"
onblur="selectCodeForLocation(this)" value="${obj.code}"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanMaterialCodeForTaking(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料类型</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择物料类型" class="layui-input" id="openSonByMateralType" readonly
value="${obj.typeName}" lay-verify="required"/>
<input type="text" id=` + "materialTypeId" + NewIdNumber + ` name=` + "typeId" + NewIdNumber + ` value="${obj.typeId}"
placeholder="请选择物料类型" class="layui-input" style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">材质:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写材质名称" class="layui-input" value="${texture}"
name=` + "texture" + NewIdNumber + `/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">规格型号:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写规格型号" class="layui-input" value="${version}"
name=` + "version" + NewIdNumber + `/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计量单位:</label>
<div class="layui-input-block">
<select onchange="changeSelectValueForUnit(this)" class="layui-form-select" name=` + "unit" + NewIdNumber +` id=` + "unit" + NewIdNumber + ` ></select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">库存数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input" readonly value="${obj.quantity}"
name=` + "oldInventory" + NewIdNumber + ` id=` + "oldInventory" + NewIdNumber + ` lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盘点数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input" onblur="calculate(this)"
name=` + "newInventory" + NewIdNumber + ` lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盘点结果:</label>
<div class="layui-input-block">
<select name=` + "takingResult" + NewIdNumber + ` id=` + "result" + NewIdNumber + ` class="layui-form-select">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盈亏数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input" readonly id=` + "Inventory_number" + NewIdNumber + `
name=` + "Inventory_number" + NewIdNumber + ` lay-verify="required"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline"
onclick="addItem(this)"></i>
</div>
`;
// 获取当前高度
var height = parseInt(($("#stepForm1").css('height')).split("px")[0]);
if (NewIdNumber !== "") {
params.push(NewIdNumber)
}
$("#stepForm1").css("height", height + 682 + 'px');
var oldIdNumber = NewIdNumber - 1;
if (oldIdNumber === 0) {
oldIdNumber = "";
}
$("#InventoryDetails" + oldIdNumber).after(materialItem);
};
// 用于扫描物料编码
scanMaterialCodeForTaking = function (obj) {
if (depositoryId !== undefined && departmentManagerIdForLocation !== undefined && departmentManagerIdForLocation !== "") {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
req.placeId = placeId;
req.depositoryId = depositoryId;
req.codeFlag = 2;
$.ajax({
url: "/material/qywxStockTakingScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data == null) {
layer.msg("对于编码:" + result + ",并未发现对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
})
} else {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
// 物料编码父级
var codeChildren = parent.childNodes[7];
// 物料名称父级
var materialChildren = parent.childNodes[5];
// 物料类型父级
var typeChildren = parent.childNodes[9];
// 材质父级
var textureChildren = parent.childNodes[11];
// 规格型号父级
var versionChildren = parent.childNodes[13];
// 计量单位父级
var unitChildren = parent.childNodes[15];
// 库存数量父级
var inventoryChildren = parent.childNodes[19];
// 编码条目
var codeItem = codeChildren.childNodes[3].childNodes[1];
// 具体条码
var codeValue = codeItem.childNodes[1];
// 物料条目
var materialItem = materialChildren.childNodes[3].childNodes;
// 物料名称
var materialName = materialItem[1].childNodes[1];
// 物料编码
var materialId = materialItem[3];
// 物料种类条目
var materialTypeItem = typeChildren.childNodes[3].childNodes;
materialName.value = data.mname;
materialId.value = data.id;
materialTypeItem[1].value = data.typeName;
materialTypeItem[3].value = data.typeId;
codeValue.value = data.code;
textureChildren.childNodes[3].childNodes[1].value = data.texture === null || data.texture === undefined ? '' : data.texture;
versionChildren.childNodes[3].childNodes[1].value = data.version === null || data.version === undefined ? '' : data.version;
unitChildren.childNodes[3].childNodes[1].value = data.unit === null || data.unit === undefined ? '' : data.unit;
inventoryChildren.childNodes[3].childNodes[1].value = data.quantity;
// 获取物料与条形码的对应关系
var idNumber = materialId.name.split("mid")[1];
var unitItem = $("#unit" + idNumber);
unitItem.empty();
unitItem.append(new Option(data.unit, "-1"));
let splitInfoList = data.splitInfoList;
if (splitInfoList.length > 0) {
$.each(splitInfoList, function (index, item) {
unitItem.append(new Option(item.newUnit, item.newUnit));
})
}
form.render();
var shelfLife = data.shelfLife;
if (shelfLife !== null && shelfLife !== undefined) {
$("#" + "producedDateItem" + idNumber).show();
var producedDateList = data['producedDateList'];
if (producedDateList !== null && producedDateList !== undefined && producedDateList.length > 0) {
$.each(producedDateList, function (index, item) {
$("#" + "producedDate" + idNumber).append(new Option(item, item));
})
}
form.render();
} else {
$("#" + "producedDateItem" + idNumber).hide();
form.render();
}
}
}
})
}
})
} else {
layer.msg("请先选择盘点位置或负责人", {
icon: 0,
time: 500
},function () {
})
}
};
// 用于计算盘点结果
calculate = function (obj) {
var parent = obj.parentNode.parentNode.parentNode;
var oldInventoryItem = parent.childNodes[19].childNodes[3].childNodes[1];
var nowInventoryItem = parent.childNodes[21].childNodes[3].childNodes[1];
var resultItem = parent.childNodes[23].childNodes[3].childNodes[1];
var InventoryItem = parent.childNodes[25].childNodes[3].childNodes[1];
var oldInventory = Number(oldInventoryItem.value);
var nowInventory = Number(nowInventoryItem.value);
$('#' + resultItem.id).empty();
if (oldInventory > nowInventory) {
// 如果盘点数目小于库存数目
$('#' + resultItem.id).append(new Option("盘亏", 'Inventory_down'));//往下拉菜单里添加元素
$("#" + InventoryItem.id).val(oldInventory - nowInventory);
} else if (oldInventory < nowInventory) {
// 如果盘点数目大于库存数目
$('#' + resultItem.id).append(new Option("盘盈", 'Inventory_up'));//往下拉菜单里添加元素
$("#" + InventoryItem.id).val(nowInventory - oldInventory);
} else {
// 如果盘点数目等于库存数目
$('#' + resultItem.id).append(new Option("正常", 'Inventory_normal'));//往下拉菜单里添加元素
$("#" + InventoryItem.id).val(nowInventory - oldInventory);
}
form.render();
};
form.on('select()', function (data) {
var id = data.elem.id; //得到select原始DOM对象id
var req = {};
if (id.includes("producedDate")) {
var idNumber = id.split('producedDate')[1]; // 得到当前id对应数字
req.mid = $("#" + "mid" + idNumber).val();
req.producedDate = data.value;
$.ajax({
url: "/material/findQuantityByProducedDate",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
$("#" + "oldInventory" + idNumber).val(d.data)
}
});
}
else if (id.includes("unit")) {
let idNumber = id.split("unit")[1]; // 得到当前id对应数字
req.mid = $("#" + "midForLocation" + idNumber).val();
req.unit = data.value;
req.placeId = $("#placeId").val();
$.ajax({
url: "/material/findQuantityByUnit",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
$("#" + "oldInventory" + idNumber).val(d.data)
}
});
}
});
});

336
target/classes/static/js/stockTaking/stockTakingForLocationTable.js

@ -0,0 +1,336 @@
// 用于扫描条形码或二维码
function scanCode(obj) {
}
// 用于计算盘点结果
function calculateForLocation(obj) {
}
function updateTableShowForLocation() {
}
layui.use(['form', 'step', 'flow', 'table', 'inputTag'], function () {
var $ = layui.$,
form = layui.form,
table = layui.table,
inputTag = layui.inputTag,
dropdown = layui.dropdown, //下拉菜单
step = layui.step;
departmentManagerIdForLocation = $("#departmentManagerIdForLocation").val();
let tagData = [];
let tempData = $("#departmentManagerForLocation").val().split(",");
$.each(tempData, function (index, item) {
if (item !== "") {
tagData.push(item)
}
});
$("#departmentManagerForLocation").val("");
let tagLabel1 = inputTag.render({
elem: '#departmentManagerForLocation',
data: tagData,//初始值
removeKeyNum: 8,//删除按键编号 默认,BackSpace 键
createKeyNum: 13,//创建按键编号 默认,Enter 键
onChange: function (data, value, type, index) {
if (type === "remove") {
let split = departmentManagerIdForLocation.split(",");
split.splice(index, 1);
departmentManagerIdForLocation = split.toString();
$("#departmentManagerIdForLocation").val(departmentManagerIdForLocation);
}
}
});
// 用于打开负责人树形菜单
$("#selectdepartmentManagerForLocation").on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectManager?type=Location',
end: function () {
departmentManagerIdForLocation = $("#departmentManagerIdForLocation").val();
tagLabel1.createItem();
},
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
});
// 通过位置盘点物料页面
table.render({
elem: "#currentTableForLocation",
url: '/material/findInventoryForStockTaking',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
where: {
depositoryId: "-1"
},
height: 'full-255',//固定高度-即固定表头固定第一行首行
cols: [
[
{field: 'mcode', width: 150, title: '存货编码', fixed: 'left'},
{field: 'mname', width: 150, title: '物料名称'},
{field: 'typeName', width: 100, title: '物料种类'},
{field: 'version', width: 150, title: '规格型号',},
{field: 'pcode', width: 150, title: '所处库位',},
{title: '计量单位', width: 200, templet: '#changeUnit', align: "center"},
{field: 'inventory', width: 100, title: '库存数'},
{field: 'stockTakingQuantity', width: 100, title: '盘点数', edit: 'quantity'},
{field: 'takingResultString', width: 100, title: '盘点结果'},
{field: 'takingInventory', width: 100, title: '盈亏数量'},
]
],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function (res, curr, count) {
$.each(res['data'], function (i, j) {
let takingUnit = j["takingUnit"];
if (takingUnit !== null) {
let parentItem = $("[lay-id='currentTableForLocation'] tr:eq(" + (i + 1) + ")");
let unitHandleItem = parentItem.children()[5];
let quantityHandleItem = parentItem.children()[6];
unitHandleItem.childNodes[0].childNodes[1].childNodes[0].data = takingUnit;
quantityHandleItem.childNodes[0].innerText = j["splitInventory"][takingUnit];
}
});
}
});
// 扫码盘点位置
scanCode = function () {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
req.codeFlag = 2;
$.ajax({
url: "/place/qywxApplicationInScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
var flag = data["flag"];
if (flag === 0) {
// 如果没有获取到位置
layer.msg("并未查询到对应位置,请重新扫描", {
icon: 0,
time: 1000
}, function () {
depositoryId = -1;
placeId = -1;
});
} else if (flag === 1) {
// 如果获取到的是库位
var place = data["place"];
$("#placeId").val(place.id);
$("#openSonByDepository").val(place.depositoryName);
$("#depositoryId").val(place.did);
depositoryId = place.did;
placeId = place.id;
} else if (flag === 2) {
// 如果获取到的是仓库
var depository = data["depository"];
$("#placeId").val("0");
$("#openSonByDepository").val(depository.dname);
$("#depositoryId").val(depository.id);
depositoryId = depository.id;
placeId = "0";
}
updateTableShow();
}
})
}
})
};
table.on('edit(currentTableFilterForLocation)', function (obj) {
obj.update({stockTakingQuantity: obj.value});//修改当前行数据
calculateForLocation(obj);
});
// 用于监听下拉菜单
table.on('tool(currentTableFilterForLocation)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
var data = obj.data //获得当前行数据
, layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'more') {
let splitInfoList = obj.data.splitInfoList;
if (splitInfoList.length > 0) {
let dropDownDataList = [];
for (var i = 0; i < splitInfoList.length; i++) {
let dropDownData = {};
dropDownData.title = splitInfoList[i].newUnit;
dropDownData.id = obj.data.id;
dropDownDataList.push(dropDownData);
}
dropdown.render({
elem: this //触发事件的 DOM 对象
, show: true //外部事件触发即显示
, data: dropDownDataList
, click: function (unit) {
this.elem[0].childNodes[0].data = unit.title;
obj.tr[0].childNodes[6].childNodes[0].innerText = obj.data.splitInventory[unit.title];
}
, align: 'right' //右对齐弹出(v2.6.8 新增)
, style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
})
}
//下拉菜单
}
});
// 用于计算盘点结果
calculateForLocation = function (obj) {
let oldInventory = Number(obj.tr[0].childNodes[6].childNodes[0].innerText);
let nowInventory = Number(obj.value);
let number = 0;
let takingResult = '';
let takingResultString = '';
let req = {};
if ((oldInventory) > (nowInventory)) {
number = oldInventory - nowInventory;
takingResult = "Inventory_down";
takingResultString = "盘亏";
} else if ((oldInventory) < (nowInventory)) {
number = nowInventory - oldInventory;
takingResult = "Inventory_up";
takingResultString = "盘盈";
} else {
takingResult = "Inventory_normal";
takingResultString = "正常";
}
obj.tr[0].childNodes[8].childNodes[0].innerText = takingResultString;
obj.tr[0].childNodes[9].childNodes[0].innerText = number;
obj.update({takingResult: takingResult});
obj.update({takingInventory: number});
req.number = number + "";
req.takingResult = takingResult;
req.takingResultString = takingResultString;
req.id = obj.data.id + "";
req.unit = obj.tr[0].childNodes[5].childNodes[0].innerText;
req.oldInventory = oldInventory + "";
$.ajax({
url: "/stockTaking/temporaryStorageForTakingResult",
dataType: "json",
data: JSON.stringify(req),
type: "POST",
contentType: "application/json;charset=utf-8"
});
};
// 用于打开仓库树形菜单
$('#openSonByDepository').on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=2',
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
var nowDepositoryId = $("#depositoryId").val();
var nowPlaceId = $("#placeId").val();
if (nowDepositoryId !== depositoryId || nowPlaceId !== placeId) {
// 如果重新选择盘点位置
var nowDepositoryName = $("#openSonByDepository").val();
$("#form1")[0].reset();
$("#depositoryId").val(nowDepositoryId);
$("#placeId").val(nowPlaceId);
$("#openSonByDepository").val(nowDepositoryName);
form.render();
}
if (nowDepositoryId !== null && nowDepositoryId !== "") {
depositoryId = nowDepositoryId;
placeId = nowPlaceId;
updateTableShowForLocation();
}
$("#locationCard")[0].reset();
}
});
});
updateTableShowForLocation = function () {
let req = {};
req.depositoryId = depositoryId;
req.placeId = placeId;
table.reload('currentTableForLocation', {
url: '/material/findInventoryForStockTaking',
page: {
curr: 1
},
where: req
}, 'data');
};
});

386
target/classes/static/js/stockTaking/stockTakingForMaterial.js

@ -0,0 +1,386 @@
// 用于扫描条形码或二维码
function scanCode(obj) {
}
// 用于加载物料选择菜单
function selectMaterial() {
}
// 用于通过物料名称获取物料
function selectMaterialByName() {
}
// 用于编码查询
function selectCode(obj) {
}
// 用于扫描物料码
function scanCodeForMaterial() {
}
// 用于计算盘点结果
function calculateForMaterial(obj) {
}
function updateTableShowForMaterial() {
}
layui.use(['form', 'step', 'flow', 'table', 'inputTag'], function () {
var $ = layui.$,
form = layui.form,
table = layui.table,
inputTag = layui.inputTag,
dropdown = layui.dropdown, //下拉菜单
step = layui.step;
departmentManagerIdForMaterial = $("#departmentManagerIdForMaterial").val();
let tagData = [];
let tempData = $("#departmentManagerForMaterial").val().split(",");
$.each(tempData, function (index, item) {
if (item !== "") {
tagData.push(item)
}
});
$("#departmentManagerForMaterial").val("");
let tagLabel = inputTag.render({
elem: '#departmentManagerForMaterial',
data: tagData,//初始值
removeKeyNum: 8,//删除按键编号 默认,BackSpace 键
createKeyNum: 13,//创建按键编号 默认,Enter 键
onChange: function (data, value, type, index) {
if (type === "remove") {
let split = departmentManagerIdForMaterial.split(",");
split.splice(index, 1);
departmentManagerIdForMaterial = split.toString();
$("#departmentManagerIdForMaterial").val(departmentManagerIdForMaterial);
}
}
});
updateTableShowForMaterial = function () {
let req = {};
req.mid = $("#mid").val();
table.reload('currentTableForMaterial', {
url: '/material/findMaterialByConditionForStockTaking',
page: {
curr: 1
},
where: req
}, 'data');
};
table.render({
elem: "#currentTableForMaterial",
url: '/material/findMaterialByConditionForStockTaking',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
where: {
depositoryId: "-1"
},
height: 'full-255',//固定高度-即固定表头固定第一行首行
cols: [
[
{field: 'mcode', width: 100, title: '存货编码', fixed: 'left'},
{field: 'mname', width: 150, title: '物料名称'},
{field: 'version', width: 150, title: '规格型号',},
{field: 'tname', width: 120, title: '物料种类'},
{field: 'dname', width: 150, title: '所处仓库'},
{field: 'pcode', width: 150, title: '所处库位',},
{title: '计量单位', width: 200, templet: '#changeUnit', align: "center"},
{field: 'inventory', width: 100, title: '库存数'},
{field: 'stockTakingQuantity', width: 100, title: '盘点数', edit: 'quantity'},
{field: 'takingResultString', width: 100, title: '盘点结果'},
{field: 'takingInventory', width: 100, title: '盈亏数量'},
]
],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function (res, curr, count) {
$.each(res['data'], function (i, j) {
let takingUnit = j["takingUnit"];
if (takingUnit !== null) {
let parentItem = $("[lay-id='currentTableForMaterial'] tr:eq(" + (i + 1) + ")");
let unitHandleItem = parentItem.children()[6];
let quantityHandleItem = parentItem.children()[7];
unitHandleItem.childNodes[0].childNodes[1].childNodes[0].data = takingUnit;
quantityHandleItem.childNodes[0].innerText = j["splitInventory"][takingUnit];
}
});
}
});
// 用于打开负责人树形菜单
$("#selectdepartmentManagerForMaterial").on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectManager?type=Material',
end: function () {
departmentManagerIdForMaterial = $("#departmentManagerIdForMaterial").val();
tagLabel.createItem();
},
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
});
table.on('edit(currentTableFilterForMaterial)', function (obj) {
obj.update({stockTakingQuantity: obj.value});//修改当前行数据
calculateForMaterial(obj);
});
// 用于监听下拉菜单
table.on('tool(currentTableFilterForMaterial)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
var data = obj.data //获得当前行数据
, layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'more') {
let splitInfoList = obj.data.splitInfoList;
if (splitInfoList.length > 0) {
let dropDownDataList = [];
for (var i = 0; i < splitInfoList.length; i++) {
let dropDownData = {};
dropDownData.title = splitInfoList[i].newUnit;
dropDownData.id = obj.data.id;
dropDownDataList.push(dropDownData);
}
dropdown.render({
elem: this //触发事件的 DOM 对象
, show: true //外部事件触发即显示
, data: dropDownDataList
, click: function (unit) {
this.elem[0].childNodes[0].data = unit.title;
obj.tr[0].childNodes[7].childNodes[0].innerText = obj.data.splitInventory[unit.title];
}
, align: 'right' //右对齐弹出(v2.6.8 新增)
, style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
})
}
//下拉菜单
}
});
// 用于计算盘点结果
calculateForMaterial = function (obj) {
let oldInventory = Number(obj.tr[0].childNodes[7].childNodes[0].innerText);
let nowInventory = Number(obj.value);
let number = 0;
let takingResult = '';
let takingResultString = '';
let req = {};
if ((oldInventory) > (nowInventory)) {
number = oldInventory - nowInventory;
takingResult = "Inventory_down";
takingResultString = "盘亏";
} else if ((oldInventory) < (nowInventory)) {
number = nowInventory - oldInventory;
takingResult = "Inventory_up";
takingResultString = "盘盈";
} else {
takingResult = "Inventory_normal";
takingResultString = "正常";
}
obj.tr[0].childNodes[9].childNodes[0].innerText = takingResultString;
obj.tr[0].childNodes[10].childNodes[0].innerText = number;
obj.update({takingResult: takingResult});
obj.update({takingInventory: number});
req.number = number + "";
req.takingResult = takingResult;
req.takingResultString = takingResultString;
req.id = obj.data.id + "";
req.unit = obj.tr[0].childNodes[6].childNodes[0].innerText;
req.oldInventory = oldInventory + "";
$.ajax({
url: "/stockTaking/temporaryStorageForTakingResult",
dataType: "json",
data: JSON.stringify(req),
type: "POST",
contentType: "application/json;charset=utf-8"
});
};
// 用于通过物料名称获取物料
selectMaterialByName = function (obj) {
// 输入code
var data = obj.value;
var req = {};
data = data.split(",")[0];
if (data !== "") {
req.mname = data;
$.ajax({
url: "/material/findMaterialByCondition",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count > 1) {
layer.msg("请点击右侧搜索确定物品");
$("#openSonByMaterial").val("");
$("#mid").val("");
$("#code").val("");
return false;
} else if (d.count === 0) {
layer.msg("没有该物品,请确认输入是否正确");
$("#openSonByMaterial").val("");
$("#mid").val("");
$("#code").val("");
return false;
} else {
var material = d.data[0];
$("#openSonByMaterial").val(material.mname);
$("#mid").val(material.mid);
$("#code").val(material.code);
form.render();
updateTableShowForMaterial();
}
}
});
}
};
// 用于实现通过编码查询物料
selectCode = function (obj) {
// 输入code
var code = obj.value;
var req = {};
req.code = code;
req.type = "out";
if (code !== "") {
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if (d == null) {
layer.msg("仓库中暂无该物料", {
icon: 0,
time: 1000
}, function () {
$("#openSonByMaterial").val("");
$("#mid").val("");
$("#code").val("");
updateTableShowForMaterial();
});
} else {
$("#openSonByMaterial").val(d.mname);
$("#mid").val(d.mid);
form.render();
updateTableShowForMaterial();
}
}
});
}
};
scanCodeForMaterial = function () {
let wxScan = parent;
if (wxScan.wx === undefined) {
wxScan = wxScan.parent.wx;
} else {
wxScan = wxScan.wx;
}
wxScan.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
req.codeFlag = 2;
$.ajax({
url: "/material/qywxApplicationOutScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg("对于编码:" + result + ",并未发现仓库中存在对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
$("#openSonByMaterial").val("");
$("#mid").val("");
$("#code").val("");
updateTableShowForMaterial();
})
} else {
$("#openSonByMaterial").val(data.mname);
$("#mid").val(data.id);
$("#code").val(data.code);
updateTableShowForMaterial();
}
}
})
}
})
};
});

BIN
target/classes/static/lib/font-awesome-4.7.0/fonts/simsun.ttc

Binary file not shown.

BIN
target/classes/static/upload/PrintTemplate.xlsx

Binary file not shown.

1771
target/classes/templates/pages/applicationForStorageCenter/application-out.html

File diff suppressed because it is too large

545
target/classes/templates/pages/applicationForStorageCenter/application-out_back.html

@ -0,0 +1,545 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
</head>
<body>
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.lay-step {
display: none;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto;">
<div carousel-item>
<div>
<form class="layui-form layui-form-pane"
style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div class="layui-card-body" id="cardItem">
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料名称:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input"
th:value="${materialById.getMname()}"
id="mname" style="border-style: none"
lay-verify="required"/>
<i class="layui-icon layui-icon-search" style="display: inline"
id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name="mid" class="layui-input" id="mid"
th:value="${materialById.getId()}"
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
th:value="${materialById.getCode()}"
class="layui-input" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name="quantity" id="quantity"
onblur="MaterialQuantityIsTrue(this)" type="number"
placeholder="请填写入物料数量" value="" class="layui-input"
lay-verify="number" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计量单位:</label>
<div class="layui-input-block">
<select id="unit" name="unit">
<option value="-1" th:text="${materialById.getUnit()}"></option>
<option th:each="splitInfo,iterStar:${materialById.getSplitInfoList()}"
th:value="${splitInfo?.getNewUnit()}"
th:text="${splitInfo?.getNewUnit()}"></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">部门:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择部门" class="layui-input"
readonly
id="openCompanyAdminorg"
onclick="selectPost(this)"
lay-verify="required"/>
<input type="text" name="adminorg" class="layui-input"
id="adminorgId"
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">施工单位:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择施工单位" class="layui-input"
readonly
id="openConstructionUnit"
onclick="selectConstructionUnit(this)"
lay-verify="required"/>
<input type="text" name="constructionUnitId" class="layui-input"
id="constructionUnitId"
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name="applyRemark" placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;提交&emsp;
</button>
</div>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交申请成功
</div>
<div style="font-size: 14px;color: #666;margin-top: 20px;">预计审核时间为1天</div>
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再申请一次</button>
</div>
</form>
</div>
</div>
</div>
</div>
<hr>
<div style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;">
<h3>说明</h3><br>
申请提交后,24小时内审核完毕
</div>
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
function MaterialQuantityIsTrue() {
}
function selectMaterial() {
}
// 用于获取施工单位
function selectConstructionUnit() {
}
// 用于获取部门树
function selectPost() {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step', 'layer', 'jquery'], function () {
var $ = layui.$,
form = layui.form,
step = layui.step;
var temp = {};
temp.mid = $("#mid").val();
$("#code").blur(function () {
var code = $(this).val();
var req = {};
req.code = code;
req.type = "out";
if (code !== "") {
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if (d == null) {
layer.msg("没有该编码,请确认是否输入正确", {icon: 5, time: 500}, function () {
$("#mname").val("");
$("#mid").val("");
layer.close(loading2);
});
} else {
req.mid = d.id;
let unitItem = $("#unit");
unitItem.empty();
unitItem.append(new Option(d.baseUnit, "-1"));
$.each(d.splitInfoList, function (index, item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));
});
$("#mname").val(d.mname);
$("#mid").val(d.id);
form.render();
layer.close(loading2);
}
}
})
}
});
$("#mname").blur(function () {
var data = $(this).val();
var req = {};
req.mname = data;
if(data !== ""){
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findInventoryByCondition",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count > 1) {
layer.msg("请点击右侧搜索确定物品",{icon:0,time:500},function () {
$("#mid").val("");
$("#code").val("");
layer.close(loading2);
});
return false;
} else if (d.count === 0) {
layer.msg("没有该物品,请确认输入是否正确",{icon:5,time:500},function() {
$("#mid").val("");
$("#code").val("");
layer.close(loading2);
});
return false;
} else {
var material = d.data[0];
$("#mname").val(material.mname);
$("#mid").val(material.id);
$("#code").val(material.code);
$("#unit").empty();
$("#unit").append(new Option(material.baseUnit, "-1"));
$.each(material.splitInfoList, function (index, item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));
});
form.render();
layer.close(loading2);
}
}
});
}
});
$('#openSonByDepository').on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=2',
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
});
$('#selectMaterial').on('click', function () {
var mname = $("#mname").val();
mname = mname.split(",")[0];
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectMaterial?mname=' + mname,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
var mid = $("#mid").val();
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMatrialById?mid=" + mid,
type: "get",
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var code = d.data.materialById.code;
if (code === undefined) {
code = "";
}
$("#code").val(code);
$("#unit").empty();
$("#unit").append(new Option(d.data.materialById.baseUnit, "-1"));
$.each(d.data.materialById.splitInfoList, function (index, item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));
});
form.render();
layer.close(loading2);
}
});
}
});
});
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
form.on('submit(formStep)', function (data) {
if (!flagForForm) {
flagForForm = true;
data = data.field;
var params = [];
data.params = params;
$.ajax({
url: "/depositoryRecord/applicationOut",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
});
}
return false;
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
//用于判断当前物料数量是否合适
MaterialQuantityIsTrue = function (obj) {
var mcode = $("#code").val(); // 获取到当前输入的物料编码
var unit = $("#unit").val();
if (mcode === "" || mcode === undefined || mcode === null) {
layer.msg("请输入物料的正确编码!", {icon: 0, time: 500}, function () {
$("#quantity").val("")
});
} else {
let val = $("#quantity").val();
if (val !== null && val !== undefined && val !== '') {
var req = {};
req.mcode = mcode;
req.quantity = val;
req.unit = unit;
req.placeId = -1;
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前单仓库中物料数量不足", {icon: 0, time: 500}, function () {
$("#quantity").val("");
layer.close(loading2);
});
}else{
layer.close(loading2);
}
}
});
}
}
};
form.on('select()', function (data) {
let unit = data.value;
let id = data.elem.id;
let mcode = $("#code").val();
if (mcode === "" || mcode === undefined || mcode === null) {
layer.msg("请输入物料的正确编码!", {icon: 0, time: 500}, function () {
$("#quantity" ).val("")
});
} else {
let val = $("#quantity").val();
if (val !== null && val !== undefined && val !== '') {
var req = {};
req.mcode = mcode;
req.quantity = val;
req.unit = unit;
req.placeId = -1;
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/MaterialQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前单个仓库中物料数量不足", {icon: 0, time: 500}, function () {
layer.close(loading2);
$("#quantity").val("");
},
);
} else {
layer.close(loading2)
}
}
});
}
}
});
selectPost = function (obj) {
let id = obj.id;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectPost?id=' + id,
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
};
selectConstructionUnit = function (obj) {
let id = obj.id;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectConstructionUnit?id=' + id,
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
}
})
</script>
</body>
</html>

645
target/classes/templates/pages/applicationForStorageCenter/application-out_scanQrCode.html

@ -0,0 +1,645 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
</head>
<body>
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.lay-step {
display: none;
}
.layui-form-select .layui-input {
border-style: none;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<!-- 出库申请-->
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto;">
<input th:value="${materialList}" style="display:none;" id="scanValue_materialList">
<input th:value="${depository}" style="display: none" id="scanValue_depositoryId">
<input th:value="${place}" style="display: none" id="scanValue_placeId">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form layui-form-pane"
style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div class="layui-card" id="cardParent">
<!-- 提交按钮-->
<div class="layui-form-item" id="btn_sub">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep"
style="margin-bottom: 30px;margin-left: 15%">
&emsp;提交申请&emsp;
</button>
</div>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交申请成功
</div>
<div style="font-size: 14px;color: #666;margin-top: 20px;">预计审核时间为1天</div>
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再申请一次</button>
</div>
</form>
</div>
</div>
</div>
<hr>
<div style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;">
<h3>说明</h3><br>
申请提交后,24小时内审核完毕
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
// 用于添加标签
function addItem(obj) {
}
// 用于删除标签
function deleteItem(obj) {
}
// 用于编码查询
function selectCode(obj) {
}
// 用于点击搜索按钮
function selectMaterial(obj) {
}
// 用于物料名称查询
function selectMaterialByName(obj) {
}
// 用于暂存卡片个数
var params = [];
// 用于页面初始化时的卡片构造
function initForm(num, obj) {
}
// 用于卡片编号
var NewIdNumber = 1;
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step', 'layer', 'jquery'], function () {
var $ = layui.$,
form = layui.form,
step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
let scanValue = {}; // 用于暂存扫描得到的结果
let materialOnPlaceList = []; // 用于保存当前物料所处的库位
let materialIsExist = ''; // 用于判断当前物料是否存在
// 页面初始化
$(function () {
let depository = $("#scanValue_depositoryId").val();
let place = $("#scanValue_placeId").val();
let materialList = $("#scanValue_materialList").val();
materialList = JSON.parse(materialList);
if (depository !== undefined && depository !== null && depository !== "") {
// 如果扫描到仓库
depository = JSON.parse(depository);
scanValue.depository = depository;
}
if (place !== undefined && place !== null && place !== "") {
// 如果扫描到库位
place = JSON.parse(place);
scanValue.place = place;
}
for (let i = 0; i < materialList.length; i++) {
initForm(i, materialList[i]);
}
});
// 用于获取当前物料所处的库位
function getPlaceByMaterial(material) {
var req = {};
req.code = material.code;
req.type = "out";
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if (d == null) {
materialIsExist = false;
layer.close(loading2);
} else {
req.mid = d.id;
$.ajax({
url: "/place/findPlaceByMid",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (res) {
materialOnPlaceList = res.data;
materialIsExist = true;
layer.close(loading2);
}
});
}
}
})
}
//用于页面初始化时的卡片构造
initForm = function (num, obj) {
var parent = $("#cardParent");
// 获取待添加父类
NewIdNumber = num;
var isPlace = false;
if (num === 0) { // 如果是第一个
NewIdNumber = "";
}
let depositoryItem = `
<div class="layui-form-item">
<label class="layui-form-label">所处库位:</label>
<div class="layui-input-block">
<select name=` + "placeId" + NewIdNumber + ` id=` + "place" + NewIdNumber + `></select>
</div>
</div>
`;
var firstItem = `
<div class="layui-card-body" id=` + "cardItem" + NewIdNumber + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none" value="${obj.mname}"
id="openSonByMaterial" lay-verify="required" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=` + "mid" + NewIdNumber + ` class="layui-input" id="mid" value="${obj.mid}"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码" value="${obj.code}" onblur="selectCode(this)"
class="layui-input" lay-verify="required">
</div>
</div>`;
var lastItem = `<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=` + "quantity" + NewIdNumber + ` type="number" placeholder="请填写入物料数量" value=""
class="layui-input" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=` + "applyRemark" + NewIdNumber + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
if (scanValue.depository !== undefined && scanValue.depository !== null && scanValue.depository !== "") {
// 如果扫描了仓库
var depository = scanValue.depository;
var req = {};
req.depositoryId = depository.did;
req.code = obj.code;
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/place/findPlaceByMcodeAndDid",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.data.length === 0) {
initDeleteCard(NewIdNumber);
layer.close(loading2);
} else {
$('#place' + NewIdNumber).empty();
$.each(d.data, function (index, item) {
$('#place' + NewIdNumber).append(new Option(item.depositoryName + "-" + item.code, item.did));//往下拉菜单里添加元素
});
form.render();
layer.close(loading2);
}
}
})
}
if (scanValue.place !== undefined && scanValue.place !== null && scanValue.place !== "") {
// 如果扫描了库位
var place = scanValue.place;
var midlist = place.midList;
if (midlist.indexOf(obj.mid) !== -1) { // 如果当前库位存在该物料
isPlace = true;
}
}
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
if (NewIdNumber !== "") {
params.push(NewIdNumber)
}
$("#stepForm").css("height", height + 475 + 'px');
var materialItem = firstItem + depositoryItem + lastItem;
$("#btn_sub").prepend(materialItem);
if (isPlace) {
// 如果当前库位存在
$('#place' + NewIdNumber).empty();
$('#place' + NewIdNumber).append(new Option(place.dname + "-" + place.code, place.pid));//往下拉菜单里添加元素
form.render();
}
};
// 初始化时删除卡片
initDeleteCard = function (NewIdNumber) {
// 待删除结点
var delItem = $("#cardItem" + NewIdNumber)[0];
var parentId = 0;
if (NewIdNumber !== "") {
parentId = parseInt(NewIdNumber);
}
// 获取祖父节点
// console.log(delItem)
var reparent = delItem.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height", height - 430 + 'px');
params = remove(params, parentId);
reparent.removeChild(delItem);
};
// 提交
form.on('submit(formStep)', function (data) {
if (!flagForForm) {
flagForForm = true;
data = data.field;
data.params = params;
$.ajax({
url: "/depositoryRecord/applicationOut",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
})
}
return false;
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
// 实现卡片添加
addItem = function (obj) {
// 获取父元素id
var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1;
// 物料名称栏目
var materialItem = `
<div class="layui-card-body" id=` + "cardItem" + NewIdNumber + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none"
id="openSonByMaterial" lay-verify="required" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=` + "mid" + NewIdNumber + ` class="layui-input" id="mid"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码" value="" onblur="selectCode(this)"
class="layui-input" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所处库位:</label>
<div class="layui-input-block">
<select name=` + "placeId" + NewIdNumber + ` id="place"></select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=` + "quantity" + NewIdNumber + ` type="number" placeholder="请填写入物料数量" value=""
class="layui-input" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=` + "applyRemark" + NewIdNumber + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
params.push(NewIdNumber)
$("#stepForm").css("height", height + 430 + 'px');
$("#" + parentId).after(materialItem);
};
// 实现卡片删除
deleteItem = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("cardItem")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height", height - 430 + 'px');
params = remove(params, parentId);
reparent.removeChild(parent);
};
//删除数组中指定元素
function remove(arr, item) {
var result = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
continue;
}
result.push(arr[i]);
}
return result;
}
// 用于实现通过编码查询物料
selectCode = function (obj) {
// 输入code
var code = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var req = {};
req.code = code;
req.type = "out";
if (code !== "") {
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if (d == null) {
layer.msg("没有该编码,请确认是否输入正确", {icon: 0, time: 500}, function () {
layer.close(loading2);
materialName.value = "";
materialId.value = "";
obj.value = "";
$('#place').empty();
});
} else {
req.mid = d.id;
$.ajax({
url: "/place/findPlaceByMid",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (res) {
$('#place').empty();
$.each(res.data, function (index, item) {
$('#place').append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素
});
form.render();
materialName.value = d.mname;
materialId.value = d.id;
layer.close(loading2);
}
});
}
}
});
}
};
// 用于实现点击搜索按钮
selectMaterial = function (obj) {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var mname = materialName.value;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
// content: '/selectMaterialByCard?mname='+mname+'&type=2&clickObj='+parentId,
content: '/getMaterialAll?mname=' + mname + '&type=2&clickObj=' + parentId,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
move: '.layui-layer-title',
fixed: false,
end: function () {
var mid = materialId.value;
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMatrialById?mid=" + mid,
type: "get",
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var material = d.data.materialById;
var placeList = d.data.placeList;
var code = material.code;
if (code === undefined) {
code = "";
}
codeValue.value = code;
$('#place').empty();
$.each(placeList, function (index, item) {
$('#place').append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素
});
form.render();
layer.close(loading2);
}
});
}
});
};
//用于实现物料名称搜索
selectMaterialByName = function (obj) {
// 输入code
var data = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var req = {};
req.mname = data;
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findInventoryByCondition",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count > 1) {
layer.msg("请点击右侧搜索确定物品", {icon: 0, time: 500}, function () {
materialId.value = "";
codeValue.value = "";
layer.close(loading2);
});
return false;
} else if (d.count === 0) {
layer.msg("没有该物品,请确认输入是否正确", {icon: 5, time: 500}, function () {
materialId.value = "";
codeValue.value = "";
materialName.value = "";
layer.close(loading2);
});
return false;
} else {
var material = d.data[0];
materialName.value = material.mname;
materialId.value = material.id;
codeValue.value = material.code;
layer.close(loading2);
}
}
});
};
})
</script>
</body>
</html>

898
target/classes/templates/pages/applicationForStorageCenter/applicationOutForGroup.html

@ -0,0 +1,898 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
</head>
<body>
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.layui-form-select {
width: 100%;
border-style: none;
}
.layui-card-body {
padding: 10px 5px;
}
.lay-step {
display: none;
}
.layui-form-select .layui-input {
border-style: none;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<input id="gidList" type="text" style="display:none;" th:value="${gidList}">
<div class="layui-carousel" id="stepForm2" lay-filter="stepForm2" style="margin: 0 auto;">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;">
<div class="layui-card" id="cardParentForGroup">
<!--提交按钮-->
<div class="layui-form-item" id="btn_sub2">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep2" type="button"
style="margin-bottom: 30px;margin-left: 15%">
&emsp;提交&emsp;
</button>
</div>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交申请成功
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
// 用于重新构造页面中的组合明细
function CoverpageForGroupInfo() {
}
// 用于重新构造页面
function CoverPageForGroup() {
}
// 用于实现卡片添加
function addItemForGroup() {
}
// 用于判断当前组合数量是否合适
function groupQuantityIsTrue() {
}
// 用于组合名称查询
function selectGroupByName() {
}
// 用于点击搜索按钮(组合)
function selectGroup(obj) {
}
// 用于删除标签(用于组合)
function deleteItemForGroup(obj) {
}
// 用于编码查询(用于组合)
function selectCodeForGroup(obj) {
}
// 用于标志是否为第一次提交
let flagForForm = false;
// 用于暂存卡片个数(组合)
var params2 = [];
// 用于卡片编号
var NewIdNumber = 1;
layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
var $ = layui.$,
form = layui.form,
element = layui.element,
step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm2',
filter: 'stepForm2',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
// 提交(组合出库)
form.on('submit(formStep2)', function (data) {
if (!flagForForm) {
flagForForm = true;
data = data.field;
data.params = params2;
if (data.gid === undefined) {
// 如果没有初始项
var dataKeys = Object.keys(data);
var dataKey;
for (let i = 0; i < dataKeys.length; i++) {
dataKey = dataKeys[i];
if (dataKey.includes("gid")) {
break;
}
}
// 获取当前数字
var keyNumber = dataKey.split("gid")[1];
for (let index = 0; index < dataKeys.length; index++) {
var tempKey = dataKeys[index];
if (tempKey.includes(keyNumber)) {
var key = tempKey.replace(keyNumber, "");
data[key] = data[tempKey];
delete data[tempKey];
}
}
data.params = remove(data.params, Number(keyNumber));
}
$.ajax({
url: "/group/applicationOutForGroup",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (d) {
layer.close(this.layerIndex);
if (d.status >= 300) {
layer.msg(d.statusInfo.detail,{icon:0,time:500},function () {
flagForForm = false;
});//失败的表情
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm2');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
});
}
});
$('.pre').click(function () {
step.pre('#stepForm2');
});
$('.next').click(function () {
step.next('#stepForm2');
});
// 获取当前gid列表
let gidList = JSON.parse($("#gidList").val());
// 页面初始化
$(function () {
let req = {};
for (let i = 0; i < gidList.length; i++) {
req.gid = gidList[i];
$.ajax({
url: "/group/findGroupInfoByGid",
data: JSON.stringify(req),
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.status === 666) {
layer.msg(d.statusInfo.detail, {
icon: 0,
time: 1000,
}, function () {
// 关闭当前页
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
})
} else {
var data = d.data;
CoverPageForGroup(i, data[0]);
form.render();
for (let j = 0; j < data.length; j++) {
CoverpageForGroupInfo(i, data[j]);
}
element.init();
form.render();
}
}
})
}
});
// 用于重新渲染页面的组合明细
CoverpageForGroupInfo = function (num, obj) {
// 获取待添加父类
NewIdNumber = num;
if (num === 0) { // 如果是第一个
NewIdNumber = "";
}
var materialItem = `
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title"">${obj.mname}</h2>
<div class="layui-colla-content">
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料编码" value="${obj.mcode}"
readonly
class="layui-input" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input type="number" placeholder="请填写入物料数量" value="${obj.quantity}"
readonly
class="layui-input" lay-verify="number" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料型号:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料型号" value="${obj.version === null ? '' : obj.version}"
readonly
class="layui-input" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料类型:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料类型" value="${obj.tname}"
readonly
class="layui-input" lay-verify="text" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计量单位:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料计量单位" value="${obj.showUnit === null ? '' : obj.showUnit}"
readonly
class="layui-input" lay-verify="text" required>
</div>
</div>
</div>
</div>
</div>
`; // 最终
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
if (NewIdNumber !== "") {
params2.push(NewIdNumber)
}
$("#stepForm2").css("height", height + 183 + 'px');
$("#" + "addItemForGroup" + NewIdNumber).before(materialItem);
};
// 用于重新构造页面
CoverPageForGroup = function (num, obj) {
if (num === 0) {
num = '';
} else {
params2.push(num);
}
var materialItem = `<div class="layui-card-body" id=` + "cardItemForGroup" + num + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">组合名称:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择组合" class="layui-input" value="${obj.gname}"
style="border-style: none"
id=` + "openGroupList" + num + ` onblur="selectGroupByName(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search"
style="display: inline"
id=` + "selectGroup" + num + ` onclick="selectGroup(this)"></i>
</div>
<input type="text" value="${obj.gid}" name=` + "gid" + num + ` class="layui-input" id=` + "gid" + num + `
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">组合编码:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + num + ` type="text" placeholder="请填写入组合编码"
onblur="selectCodeForGroup(this)" value="${obj.gcode}"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px;display: none" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">组合数量:</label>
<div class="layui-input-block">
<input type="number" name=` + "quantity" + num + ` class="layui-input" id=` + "quantityForGroup" + num + `
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写组合数量"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">部门:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择部门" class="layui-input"
readonly
id=`+"openCompanyAdminorgForGroup"+num+`
onclick="selectPost(this)"
/>
<input type="text" name="adminorgId" class="layui-input"
id=`+"adminorgIdForGroup"+num+`
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">施工单位:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择施工单位" class="layui-input"
readonly
id=`+"openConstructionUnitForGroup"+num+`
onclick="selectConstructionUnit(this)"
/>
<input type="text" name=`+"constructionUnitId"+num+` class="layui-input"
id=`+"constructionUnitIdForGroup"+num+`
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=` + "applyRemark" + num + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + num + `
onclick="addItemForGroup(this)"></i>
</div>
`;
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height + 289 + 'px');
if (num === '') {
$("#btn_sub2").before(materialItem);
} else {
num = num - 1;
if (num === 0) {
num = '';
}
$("#" + "cardItemForGroup" + num).after(materialItem);
}
};
// 实现卡片添加(组合)
addItemForGroup = function (obj) {
var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1;
var materialItem = `
<div class="layui-card-body" id=` + "cardItemForGroup" + NewIdNumber + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">组合名称:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择组合" class="layui-input"
style="border-style: none"
id=` + "openGroupList" + NewIdNumber + ` onblur="selectGroupByName(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search"
style="display: inline"
id=` + "selectGroup" + NewIdNumber + ` onclick="selectGroup(this)"></i>
</div>
<input type="text" name=` + "gid" + NewIdNumber + ` class="layui-input" id=` + "gid" + NewIdNumber + `
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">组合编码:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入组合编码" value=""
onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px;display: none" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">组合数量:</label>
<div class="layui-input-block">
<input type="number" name=` + "quantity" + NewIdNumber + ` class="layui-input" id=` + "quantityForGroup" + NewIdNumber + `
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写组合数量"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">部门:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择部门" class="layui-input"
readonly
id=`+"openCompanyAdminorgForGroup"+NewIdNumber+`
onclick="selectPost(this)"
/>
<input type="text" name=`+"adminorgId"+NewIdNumber+` class="layui-input"
id=`+"adminorgIdForGroup"+NewIdNumber+`
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">施工单位:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择施工单位" class="layui-input"
readonly
id=`+"openConstructionUnitForGroup"+NewIdNumber+`
onclick="selectConstructionUnit(this)"
/>
<input type="text" name=`+"constructionUnitId"+NewIdNumber+` class="layui-input"
id=`+"constructionUnitIdForGroup"+NewIdNumber+`
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=` + "applyRemark" + NewIdNumber + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + NewIdNumber + `
onclick="addItemForGroup(this)"></i>
</div>
`;
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
params2.push(NewIdNumber);
$("#stepForm2").css("height", height + 385 + 'px');
$("#" + parentId).after(materialItem);
};
// 用于实现通过编码查询组合
selectCodeForGroup = function (obj) {
// 输入code
var code = obj.value;
// 获取搜索的对应卡片
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// gid
let gidItem = gnameParent.childNodes[3];
// gname
let gnameItem = gnameParent.childNodes[1].childNodes[1];
let req = {};
req.code = code;
if(code !== ""){
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/group/findGroupByCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg(d.statusInfo.detail, {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gnameItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
layer.close(loading2);
})
} else {
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gnameItem.value = data[0].gname;
gidItem.value = data[0].gid;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
layer.close(loading2);
}
}
});
}
};
// 用于实现点击搜索按钮(组合)
selectGroup = function (obj) {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
// 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
// gid
let gidItem = gnameParent.childNodes[3];
// gname
let gnameItem = gnameParent.childNodes[1].childNodes[1];
let gname = gnameItem.value;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectGroup?gname=' + gname + '&clickObj=' + parentId,
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
let gid = gidItem.value;
if (gid !== '') {
let req = {};
req.gid = gid;
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/group/findGroupInfoByGid",
data: JSON.stringify(req),
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg(d.statusInfo.detail, {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gnameItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
layer.close(loading2);
})
} else {
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gcodeItem.value = data[0].gcode;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
layer.close(loading2);
}
}
})
}
}
})
};
// 用于实现组合名称搜索
selectGroupByName = function (obj) {
let gname = obj.value;
var parent = obj.parentNode.parentNode.parentNode.parentNode;
// 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
// gid
let gidItem = gnameParent.childNodes[3];
if (gname !== '') {
var req = {};
req.gname = gname;
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/group/findGroupByGname",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count === -1) {
// 如果当前组合名称的数量不止一个
layer.msg("请点击右侧搜索确定物品", {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gcodeItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
layer.close(loading2);
});
} else if (d.count === 0) {
// 如果当前组合名称不存在
layer.msg("没有该组合,请确认输入是否正确", {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gcodeItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
layer.close(loading2);
});
} else {
// 正常
let data = d.data;
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gidItem.value = data[0].gid;
gcodeItem.value = data[0].gcode;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
layer.close(loading2);
}
}
})
} else {
gcodeItem.value = '';
gidItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
};
//用于判断当前组合数量是否合适
groupQuantityIsTrue = function (obj) {
var id = obj.id.split("quantityForGroup")[1];
var gid = $("#gid" + id).val(); // 获取到当前输入的物料编码
if (gid === "" || gid === undefined || gid === null) {
layer.msg("请输入正确的组合!", {icon: 0, time: 500}, function () {
$("#quantityForGroup" + id).val("")
});
} else {
let val = $("#quantityForGroup" + id).val();
if (val !== null && val !== undefined && val !== '') {
var req = {};
req.gid = gid;
req.quantity = val;
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/group/groupQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前组合中" + res.statusInfo.message + "的库存数量不足", {
icon: 0,
time: 500
}, function () {
$("#quantityForGroup" + id).val("");
layer.close(loading2);
});
}else{
layer.close(loading2);
}
}
});
}
}
};
// 实现卡片删除(组合)
deleteItemForGroup = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("cardItemForGroup")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height - 385 + 'px');
params2 = remove(params2, parentId);
reparent.removeChild(parent);
};
//删除数组中指定元素
function remove(arr, item) {
var result = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
continue;
}
result.push(arr[i]);
}
return result;
}
selectPost = function (obj) {
let id = obj.id;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectPost?id=' + id,
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
};
selectConstructionUnit = function (obj) {
let id = obj.id;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectConstructionUnit?id=' + id,
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
}
})
</script>
</body>
</html>

115
target/classes/templates/pages/constructionunit/constructionunit_add.html

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>施工单位创建</legend>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form layui-form-pane"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
lay-filter="form1">
<div class="layui-form-item">
<label class="layui-form-label">单位名称:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写施工单位名称" class="layui-input"
name="name" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">地址:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写施工地址" class="layui-input"
name="address"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">介绍:</label>
<div class="layui-input-block">
<input name="introduce" placeholder="请填写施工单位介绍..."
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;创建&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
<hr>
</div>
</div>
</fieldset>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'layer'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer;
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
$.ajax({
url: "/company/constructionUnitAdd",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data.field),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("添加成功!", {
icon: 6,//成功的表情
time: 1000 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = "/constructionUnitAdd"
});
}
},
complete: function () {
form.val("form1", {
"name": "",// "name": "value"
"address": "",
"introduce": ""
})
}
});
}
return false;
});
});
</script>
</body>
</html>

112
target/classes/templates/pages/constructionunit/constructionunit_edit.html

@ -0,0 +1,112 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>施工单位创建</legend>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form layui-form-pane"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
lay-filter="form1">
<input th:value="${record.getId()}" name="id" id="id" style="display:none;"/>
<div class="layui-form-item">
<label class="layui-form-label">单位名称:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写施工单位名称" class="layui-input"
th:value="${record.getName()}"
name="name" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">地址:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写施工地址" class="layui-input"
th:value="${record.getAddress()}"
name="address"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">介绍:</label>
<div class="layui-input-block">
<input name="introduce" placeholder="请填写施工单位介绍..."
th:value="${record.getIntroduce()}"
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;修改&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
<hr>
</div>
</div>
</fieldset>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'layer'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer;
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
$.ajax({
url: "/company/ConstructionUnitEdit",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data.field),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功!", {
icon: 6,//成功的表情
time: 1000 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = "/constructionUnitEdit?id="+$("#id").val();
});
}
}
});
}
return false;
});
});
</script>
</body>
</html>

346
target/classes/templates/pages/constructionunit/constructionunit_out.html

@ -0,0 +1,346 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">单位名称</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写施工单位名称" class="layui-input"
name="name" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div>
</div>
</form>
</div>
</fieldset>
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script id="CNName" type="text/html">
<a id="{{d.id}}" onclick="showDetail(this)">{{d.name}}</a>
</script>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加
</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除
</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
function showDetail() {
}
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
form = layui.form,
upload = layui.upload,
table = layui.table;
table.render({
elem: "#currentTableId",
url: '/company/allConstructionUnit',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
height: 'full-255',//固定高度-即固定表头固定第一行首行
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [
[
{type: "checkbox", width: 50},
{title: '单位名称', width: 120, templet: '#CNName', align: "center"},
{field: 'introduce', width: 200, title: '单位介绍'},
{field: 'address', width: 200, title: '单位地址'},
{title: '状态', width: 100, templet: '#switchTpl', align: "center"},
{field: 'showCreateTime', width: 200, title: '创建时间'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line'
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req = {};
data = data.field;
if (data.name !== '') {
req.name = data.name;
}
if (data.state !== '') {
req.state = data.state;
}
//执行搜索重载
table.reload('currentTableId', {
url: '/company/allConstructionUnit',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '创建单位',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/constructionUnitAdd',
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/company/ConstructionUnitDel',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/company/allConstructionUnit',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
})
} else {
layer.msg("未选中记录,请确认!");
return false;
}
}
});
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
if (obj.event === 'detail') {
let req = {};
var index = layer.open({
title: '施工单位详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/constructionUnitEdit?id=' + data.id,
end: function () {
//执行搜索重载
table.reload('currentTableId', {
url: '/company/allConstructionUnit',
page: {
curr: 1
},
where: req
}, 'data');
}
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/company/ConstructionUnitDel',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
});
}
});
// 用于查看详情
showDetail = function (obj) {
let req = {};
layer.open({
title: '施工单位详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/constructionUnitEdit?id=' + obj.id,
end: function () {
//执行搜索重载
table.reload('currentTableId', {
url: '/company/allConstructionUnit',
page: {
curr: 1
},
where: req
}, 'data');
}
});
}
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1;
}
req["id"] = this.value;
// 如果启用
$.ajax({
url: "/company/ConstructionUnitStateEdit",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
// 执行表格重加载
table.reload('currentTableId', {
url: '/company/allConstructionUnit',
page: {
curr: 1
},
});
})
}
}
})
});
});
</script>
</body>
</html>

182
target/classes/templates/pages/place/place_editForTray.html

@ -0,0 +1,182 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>库位详情</legend>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px" lay-filter="form1">
<input th:value="${place.getId()}" id="placeId" name = "id" type="text" style="display: none">
<input th:value="${place.getDid()}" id="depositoryId" name = "did" type="text" style="display: none">
<div class="layui-form-item">
<label class="layui-form-label">托盘码:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写托盘码" class="layui-input" th:value="${place.getCode()}"
name="code" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最大存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最大存放量" class="layui-input" th:value="${place.getMax() / 100}"
name="max" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最小存放量:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写最小存放量" class="layui-input" th:value="${place.getMin()}"
name="min" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">打印码</label>
<div class="layui-input-block">
<input id="createCode" type="button" class="layui-btn layui-btn-radius layui-btn-normal" onclick="createQrCode()" value="生成"/>
<div id="codeItem" style="display:none;">
<img id="barCode" >
<button id="printer" type="button" onclick="print_code()" class="layui-btn">打印</button>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;提交&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
<hr>
</div>
</div>
</fieldset>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
function createQrCode() {
}
function print_code() {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'layer','dropdown','tree'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer;
var depositoryId = $("#depositoryId").val();
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
var req = data.field;
req.type = "one";
$.ajax({
url: "/place/tray_edit",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.detail,{
icon:0,
time:1000
},function () {
location.reload();
});//失败的表情
} else {
layer.msg("修改成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function(){
//do something
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);//关闭当前页
window.location='/warehouseByParentId?parentId='+depositoryId;
});
}
},
complete: function () {
form.val("form1", {
})
}
});
}
return false;
});
createQrCode = function () {
var placeId = $("#placeId").val();
var req = {};
req.pid = placeId;
$.ajax({
url: "/place/createQrCode",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (d) {
var data = d.data;
layer.close(this.layerIndex);
$("#barCode").attr("src", data.qrCode);
$("#codeItem").show();
$("#createCode").hide();
}
})
};
print_code = function(){
layer.open({
type: 2,
title: '打印',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['80%', '80%'],
move: '.layui-layer-title',
fixed: false,
content: '/printCode?mid='+$("#placeId").val()+'&flag=3',
})
};
});
</script>
</body>
</html>

56
target/classes/templates/pages/post/selectConstructionUnit.html

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<input id="id" style="display:none;" th:value="${id}">
<div id="test2" class="demo-tree"></div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
layui.use(['form', 'layer', 'dropdown', 'tree'], function () {
var $ = layui.jquery,
tree = layui.tree,
test = tree.render({
elem: '#test2'
, data: []
, onlyIconControl: false //是否仅允许节点左侧图标控制展开收缩
, click: function (obj) {
var data = obj.data;
let id = $("#id").val();
let idNumber = id.replace(/[^\d]/g, "");
if (id.indexOf("Group") !== -1) {
$("#openConstructionUnitForGroup"+idNumber, window.parent.document).val(data.title);
$("#constructionUnitIdForGroup"+idNumber, window.parent.document).val(data.id);
} else {
$("#openConstructionUnit"+idNumber, window.parent.document).val(data.title);
$("#constructionUnitId"+idNumber, window.parent.document).val(data.id);
}
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
});
$.ajax({
url: "/company/constructionUnitTree",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var data2 = d.data;
test.reload({
data: data2
});
}
});
})
</script>
</body>
</html>

57
target/classes/templates/pages/post/selectPost.html

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<input id="id" style="display:none;" th:value="${id}">
<div id="test2" class="demo-tree"></div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
layui.use(['form', 'layer', 'dropdown', 'tree'], function () {
var $ = layui.jquery,
tree = layui.tree,
test = tree.render({
elem: '#test2'
, data: []
, onlyIconControl: false //是否仅允许节点左侧图标控制展开收缩
, click: function (obj) {
var data = obj.data;
let id = $("#id").val();
let idNumber = id.replace(/[^\d]/g, "");
if (id.indexOf("Group") !== -1) {
$("#adminorgIdForGroup"+idNumber, window.parent.document).val(data.id);
$("#openCompanyAdminorgForGroup"+idNumber, window.parent.document).val(data.title);
}else{
$("#adminorgId"+idNumber, window.parent.document).val(data.id);
$("#openCompanyAdminorg"+idNumber, window.parent.document).val(data.title);
}
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
});
$.ajax({
url: "/company/postTreeMenus",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var data2 = d.data;
test.reload({
data: data2
});
}
});
})
</script>
</body>
</html>

563
target/classes/templates/pages/stockTaking/stockTakingForTable.html

@ -0,0 +1,563 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
<link rel="stylesheet" href="/static/css/inputTag.css">
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-card-body {
padding: 0px;
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.layui-form-select {
width: 100%;
border-style: none;
}
.lay-step {
display: none;
}
</style>
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto; ">
<div carousel-item style="overflow: inherit">
<div>
<div class="layui-fluid">
<div class="layui-card">
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;"
lay-filter="form1" id="form1">
<div class="layui-card-body" id="takingHeader" style="padding-right: 0px">
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">盘点位置:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择盘点位置" class="layui-input"
style="border-style: none"
id="openSonByDepository" readonly
lay-verify="required"/>
<img src="/static/images/search.ico" height="16" width="16"
id="scanCodeImg"
style="margin-top: 10px" onclick="scanCode(this)">
</div>
<input type="text" name="depositoryId" class="layui-input"
id="depositoryId"
style="display: none" lay-verify="required"/>
<input type="text" name="placeId" class="layui-input" id="placeId"
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">负责人:</label>
<div class="layui-input-block">
<div class="fairy-tag-container" style="border-style: none">
<div class="inputdiv">
<input type="text" id="departmentManager" style="display: none"
th:value="${departmentHeadName}"/>
<i class="layui-icon layui-icon-search"
style="display: inline;right: 0;position: absolute;"
id="selectdepartmentManager"></i>
<input type="text" id="departmentManagerId"
name="departmentManagerId"
th:value="${departmentHeadId}"
class="layui-input" style="display: none"
lay-verify="required"/>
</div>
</div>
</div>
</div>
</div>
</form>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"
style="margin-top: 123px"></table>
<!-- 提交按钮-->
<div class="layui-form-item" style="margin-top: 10px;">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-normal layui-btn-lg"
lay-submit
lay-filter="formStep">
&emsp;提交&emsp;
</button>
</div>
</div>
</div>
</div>
</div>
<!-- 下一步-->
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交成功
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再填写一次</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script id="changeUnit" type="text/html">
<a class="layui-btn layui-btn-xs" lay-event="more">{{d.unit}}<i class="layui-icon layui-icon-down"></i></a>
</script>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
// 用于添加标签
function addItem(obj) {
}
// 用于删除标签
function deleteItem(obj) {
}
// 用于扫描条形码或二维码
function scanCode(obj) {
}
// 用于加载物料选择菜单
function selectMaterial() {
}
// 用于通过物料名称获取物料
function selectMaterialByName() {
}
// 用于编码查询
function selectCode(obj) {
}
// 用于计算盘点结果
function calculate(obj) {
}
function updateTableShow() {
}
// 用于标志是否为第一次提交
let flagForForm = false;
// 用于存储当前选择的盘点位置
let depositoryId;
let placeId;
// 用于存储当前选择的负责人
let departmentManagerId;
layui.use(['form', 'step', 'flow', 'table', 'inputTag'], function () {
var $ = layui.$,
form = layui.form,
table = layui.table,
inputTag = layui.inputTag,
dropdown = layui.dropdown, //下拉菜单
step = layui.step;
departmentManagerId = $("#departmentManagerId").val();
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '900px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
let tagData = [];
let tempData = $("#departmentManager").val().split(",");
$.each(tempData, function (index, item) {
if (item !== "") {
tagData.push(item)
}
});
$("#departmentManager").val("");
let tagLabel = inputTag.render({
elem: '#departmentManager',
data: tagData,//初始值
removeKeyNum: 8,//删除按键编号 默认,BackSpace 键
createKeyNum: 13,//创建按键编号 默认,Enter 键
onChange: function (data, value, type, index) {
if (type === "remove") {
let split = departmentManagerId.split(",");
split.splice(index, 1);
departmentManagerId = split.toString();
$("#departmentManagerId").val(departmentManagerId);
}
}
});
// 用于打开仓库树形菜单
$('#openSonByDepository').on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=2',
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
var nowDepositoryId = $("#depositoryId").val();
var nowPlaceId = $("#placeId").val();
if (nowDepositoryId !== depositoryId || nowPlaceId !== placeId) {
// 如果重新选择盘点位置
var nowDepositoryName = $("#openSonByDepository").val();
$("#form1")[0].reset();
$("#depositoryId").val(nowDepositoryId);
$("#placeId").val(nowPlaceId);
$("#openSonByDepository").val(nowDepositoryName);
form.render();
}
if (nowDepositoryId !== null && nowDepositoryId !== "") {
depositoryId = nowDepositoryId;
placeId = nowPlaceId;
updateTableShow();
}
}
});
});
updateTableShow = function () {
let req = {};
req.depositoryId = depositoryId;
req.placeId = placeId;
table.reload('currentTableId', {
url: '/material/findInventoryForStockTaking',
page: {
curr: 1
},
where: req
}, 'data');
};
table.render({
elem: "#currentTableId",
url: '/material/findInventoryForStockTaking',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
where: {
depositoryId: "-1"
},
height: 'full-255',//固定高度-即固定表头固定第一行首行
cols: [
[
{field: 'mcode', width: 150, title: '存货编码', fixed: 'left'},
{field: 'mname', width: 150, title: '物料名称'},
{field: 'typeName', width: 100, title: '物料种类'},
{field: 'version', width: 150, title: '规格型号',},
{field: 'pcode', width: 150, title: '所处库位',},
{title: '计量单位', width: 200, templet: '#changeUnit', align: "center"},
{field: 'inventory', width: 100, title: '库存数'},
{field: 'stockTakingQuantity', width: 100, title: '盘点数', edit: 'quantity'},
{field: 'takingResultString', width: 100, title: '盘点结果'},
{field: 'takingInventory', width: 100, title: '盈亏数量'},
]
],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function (res, curr, count) {
$.each(res['data'], function (i, j) {
let takingUnit = j["takingUnit"];
if (takingUnit !== null) {
let parentItem = $("[lay-id='currentTableId'] tr:eq(" + (i + 1) + ")");
let unitHandleItem = parentItem.children()[5];
let quantityHandleItem = parentItem.children()[6];
unitHandleItem.childNodes[0].childNodes[1].childNodes[0].data = takingUnit;
quantityHandleItem.childNodes[0].innerText = j["splitInventory"][takingUnit];
}
});
}
});
// 用于打开负责人树形菜单
$("#selectdepartmentManager").on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectManager',
end: function () {
departmentManagerId = $("#departmentManagerId").val();
tagLabel.createItem();
},
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
});
// 用于提交盘点情况
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
data = data.field;
data.depositoryId = depositoryId;
data.placeId = placeId;
data.departmentManager = departmentManagerId;
$.ajax({
url: "/stockTaking/submitStockTaking",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
},
complete: function () {
layer.close(this.layerIndex);
}
});
}
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
// 扫码盘点位置
scanCode = function () {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
req.codeFlag = 2;
$.ajax({
url: "/place/qywxApplicationInScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
var flag = data["flag"];
if (flag === 0) {
// 如果没有获取到位置
layer.msg("并未查询到对应位置,请重新扫描", {
icon: 0,
time: 1000
}, function () {
depositoryId = -1;
placeId = -1;
});
} else if (flag === 1) {
// 如果获取到的是库位
var place = data["place"];
$("#placeId").val(place.id);
$("#openSonByDepository").val(place.depositoryName);
$("#depositoryId").val(place.did);
depositoryId = place.did;
placeId = place.id;
} else if (flag === 2) {
// 如果获取到的是仓库
var depository = data["depository"];
$("#placeId").val("0");
$("#openSonByDepository").val(depository.dname);
$("#depositoryId").val(depository.id);
depositoryId = depository.id;
placeId = "0";
}
updateTableShow();
}
})
}
})
};
table.on('edit(currentTableFilter)', function (obj) {
obj.update({stockTakingQuantity: obj.value});//修改当前行数据
calculate(obj);
});
// 用于监听下拉菜单
table.on('tool(currentTableFilter)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
var data = obj.data //获得当前行数据
, layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'more') {
let splitInfoList = obj.data.splitInfoList;
if (splitInfoList.length > 0) {
let dropDownDataList = [];
for (var i = 0; i < splitInfoList.length; i++) {
let dropDownData = {};
dropDownData.title = splitInfoList[i].newUnit;
dropDownData.id = obj.data.id;
dropDownDataList.push(dropDownData);
}
dropdown.render({
elem: this //触发事件的 DOM 对象
, show: true //外部事件触发即显示
, data: dropDownDataList
, click: function (unit) {
this.elem[0].childNodes[0].data = unit.title;
obj.tr[0].childNodes[6].childNodes[0].innerText = obj.data.splitInventory[unit.title];
}
, align: 'right' //右对齐弹出(v2.6.8 新增)
, style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
})
}
//下拉菜单
}
});
// 用于计算盘点结果
calculate = function (obj) {
let oldInventory = Number(obj.tr[0].childNodes[6].childNodes[0].innerText);
let nowInventory = Number(obj.value);
let number = 0;
let takingResult = '';
let takingResultString = '';
let req = {};
if ((oldInventory) > (nowInventory)) {
number = oldInventory - nowInventory;
takingResult = "Inventory_down";
takingResultString = "盘亏";
} else if ((oldInventory) < (nowInventory)) {
number = nowInventory - oldInventory;
takingResult = "Inventory_up";
takingResultString = "盘盈";
} else {
takingResult = "Inventory_normal";
takingResultString = "正常";
}
obj.tr[0].childNodes[8].childNodes[0].innerText = takingResultString;
obj.tr[0].childNodes[9].childNodes[0].innerText = number;
obj.update({takingResult: takingResult});
obj.update({takingInventory: number});
req.number = number + "";
req.takingResult = takingResult;
req.takingResultString = takingResultString;
req.id = obj.data.id + "";
req.unit = obj.tr[0].childNodes[5].childNodes[0].innerText;
req.oldInventory = oldInventory+"";
$.ajax({
url: "/stockTaking/temporaryStorageForTakingResult",
dataType: "json",
data: JSON.stringify(req),
type: "POST",
contentType: "application/json;charset=utf-8"
});
};
});
</script>
</body>
</html>

1584
target/classes/templates/pages/stockTaking/stockTaking_back.html

File diff suppressed because it is too large

111
target/classes/templates/pages/user/user-addForIn.html

@ -0,0 +1,111 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<input type="text" name="userid" th:value="${userByPort.getId()}" style="display: none">
<input type="text" name="classes" th:value="${classes}" style="display: none">
<div class="layui-form-item">
<label class="layui-form-label required">用户名</label>
<div class="layui-input-block">
<input type="text" lay-verify="required" lay-reqtext="用户名不能为空" placeholder="请输入用户名" th:value="${userByPort.getName()}" class="layui-input">
<tip>填写自己管理账号的名称。</tip>
</div>
</div>
<div class=" layui-form-item" >
<label class="layui-form-label required">负责类型:</label>
<div class="layui-inline" style="margin-bottom: 10px">
<input type="text" placeholder="请选择类型" class="layui-input" id="openSonByMateralType" readonly/>
<input type="text" name="mtid" class="layui-input" id="materialTypeId" style="display: none" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form','layer','laydate'], function () {
var form = layui.form,
layer = layui.layer,
laydate=layui.laydate,
$ = layui.$;
$('#openSonByMateralType').on('click', function(){
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move : '.layui-layer-title',
fixed:false,
content: '/selectType',
success: function(layero, index){
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height','100%');
iframeChildren.css('height','100%');
}
});
});
//日期
laydate.render({
elem: '#date'
});
//监听提交
form.on('submit(saveBtn)', function (data) {
data=data.field;
//去除对应的仓库id
if (data.depositoryId===""){
delete data.depositoryId;
}
$.ajax({
url: "/sys/user_roleForIn",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);//关闭当前页
})
}
}
});
return false;
});
});
</script>
</body>
</html>

112
target/classes/templates/pages/user/user-role-editForIn.html

@ -0,0 +1,112 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</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/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<input type="text" name="userid" th:value="${userByPort.getId()}" style="display: none">
<input type="text" name="roleId" th:value="${roleId}" style="display: none">
<div class="layui-form-item">
<label class="layui-form-label required">用户名</label>
<div class="layui-input-block">
<input type="text" lay-verify="required" lay-reqtext="用户名不能为空" placeholder="请输入用户名" th:value="${userByPort.getName()}" class="layui-input" readonly>
<tip>填写自己管理账号的名称。</tip>
</div>
</div>
<div class=" layui-form-item" >
<label class="layui-form-label required">负责类型:</label>
<div class="layui-inline" style="margin-bottom: 10px">
<input type="text" placeholder="请选择类型" class="layui-input" id="openSonByMateralType" readonly th:value="${userByPort.getMaterialTypeName()}"
lay-verify="required"/>
<input type="text" th:value="${mtid}" name="mtid" class="layui-input" id="materialTypeId" style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form','layer','laydate'], function () {
var form = layui.form,
layer = layui.layer,
laydate=layui.laydate,
$ = layui.$;
$('#openSonByMateralType').on('click', function(){
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move : '.layui-layer-title',
fixed:false,
content: '/selectType',
success: function(layero, index){
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height','100%');
iframeChildren.css('height','100%');
}
});
});
//日期
laydate.render({
elem: '#date'
});
//监听提交
form.on('submit(saveBtn)', function (data) {
data=data.field;
//去除对应的仓库id
if (data.mtid===""){
delete data.mtid;
}
$.ajax({
url: "/sys/userRole_editForIn",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
},function(){
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);//关闭当前页
})
}
}
});
return false;
});
});
</script>
</body>
</html>

BIN
target/depository.war.original

Binary file not shown.

4
target/depository/WEB-INF/classes/META-INF/MANIFEST.MF

@ -0,0 +1,4 @@
Manifest-Version: 1.0
Main-Class: com.dreamchaser.depository_manage.DepositoryManageApplicatio
n

17
target/depository/WEB-INF/classes/META-INF/spring-configuration-metadata.json

@ -0,0 +1,17 @@
{
"groups": [
{
"name": "file",
"type": "com.dreamchaser.depository_manage.config.FileConfig",
"sourceType": "com.dreamchaser.depository_manage.config.FileConfig"
}
],
"properties": [
{
"name": "file.upload-path",
"type": "java.lang.String",
"sourceType": "com.dreamchaser.depository_manage.config.FileConfig"
}
],
"hints": []
}

87
target/depository/WEB-INF/classes/application-test.yml

@ -0,0 +1,87 @@
#开启健康检查、审计、统计和监控,即可通过访问/actuator/beans等查看状态
management:
endpoints:
web:
exposure:
include: beans,health
spring:
mobile:
sitepreference:
enabled:true
servlet:
multipart:
enabled: true
max-file-size: 100MB # 单个文件上传的最大上限
max-request-size: 100MB # 一次请求总大小上限
##数据库设置
datasource:
username: depository
password: NhE47edekBHxhjYk
url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5
minIdle: 5
maxActive: 10
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
useGlobalDataSourceStat: true
server:
port: 9090
testWhileIdle: true
testOnReturn: false
testOnBorrow: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
#配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
filters: stat, wall, log4j
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
#超时回收机制
removeAbandoned: true
removeAbandonedTimeout: 1800
logAbandoned: true
banner:
location: banner.txt
thymeleaf:
cache: false
mode: HTML
mvc:
hiddenmethod:
filter:
enabled: true
view:
prefix: /templates/
suffix: .html
static-path-pattern: /static/**
redis:
port: 6379
host: 127.0.0.1
database: 0
jedis:
pool:
min-idle: 10
max-idle: 20
max-wait: -1ms
max-active: 200
timeout: 2000ms
server:
mybatis:
type-aliases-package: com.dreamchaser.depository_manage.entity
configuration:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-prefix: mapper.
#mybatis-plus:
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
file:
uploadPath: D:/upLoad

5
target/depository/WEB-INF/classes/application.yml

@ -0,0 +1,5 @@
spring:
profiles:
active: test
server:
port: 11111

14
target/depository/WEB-INF/classes/banner.txt

@ -0,0 +1,14 @@
,---, ____ ,---,
.' .' `\ ,' , `. ,--.' |
,---.' \ __ ,-. ,-+-,.' _ | | | : __ ,-.
| | .`\ |,' ,'/ /| ,-+-. ; , || : : : .--.--. ,' ,'/ /|
: : | ' |' | |' | ,---. ,--.--. ,--.'|' | || ,---. : | |,--. ,--.--. / / ' ,---. ' | |' |
| ' ' ; :| | ,'/ \ / \ | | ,', | |,/ \ | : ' | / \ | : /`./ / \ | | ,'
' | ; . |' : / / / | .--. .-. | | | / | |--'/ / ' | | /' :.--. .-. | | : ;_ / / |' : /
| | : | '| | ' . ' / | \__\/: . . | : | | , . ' / ' : | | | \__\/: . . \ \ `. . ' / || | '
' : | / ; ; : | ' ; /| ," .--.; | | : | |/ ' ; :__ | | ' | : ," .--.; | `----. \' ; /|; : |
| | '` ,/ | , ; ' | / | / / ,. | | | |`-' ' | '.'|| : :_:,'/ / ,. | / /`--' /' | / || , ;
; : .' ---' | : |; : .' \| ;/ | : :| | ,' ; : .' \'--'. / | : | ---'
| ,.' \ \ / | , .-./'---' \ \ / `--'' | , .-./ `--'---' \ \ /
'---' `----' `--`---' `----' `--`---' `----'

108
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/AccesstoAddressMapper.xml

@ -0,0 +1,108 @@
<?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">
<!-- depository -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.AccesstoAddressMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="accesstoAddress" type="com.dreamchaser.depository_manage.entity.AccesstoAddress">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="url" property="url" jdbcType="VARCHAR" />
<result column="type" property="type" jdbcType="INTEGER" />
<result column="role_id" property="role_id" jdbcType="INTEGER" />
<result column="menuparent" property="menuparent" jdbcType="INTEGER" />
<result column="state" property="state" jdbcType="INTEGER" />
<result column="icon" property="icon" jdbcType="VARCHAR"/>
<result column="target" property="target" jdbcType="VARCHAR"/>
<result column="ischild" property="ischild" jdbcType="INTEGER"/>
</resultMap>
<!-- This code was generated by TableGo tools, mark 1 end. -->
<!-- This code was generated by TableGo tools, mark 2 begin. -->
<!-- 表查询字段 -->
<sql id="allColumns">
a.id,a.name,a.url ,a.`type` ,a.role_id ,a.menuparent ,a.state,a.icon,a.target,a.ischild
</sql>
<select id="findAllMenus" resultMap="accesstoAddress">
select
<include refid="allColumns"></include>
from accesstoaddress a
where a.state != 3
</select>
<select id="findAccessstoAddressByParentAndRole" resultMap="accesstoAddress" parameterType="map">
select
<include refid="allColumns"/>
from accesstoaddress a
where 1 = 1
<if test="roleId != null and roleId != ''">
and a.role_id = #{roleId}
</if>
<if test="menuparent != null and menuparent != ''">
and a.menuparent = #{menuparent}
</if>
and a.state != 3
</select>
<select id="findMenusByRole" resultMap="accesstoAddress" parameterType="map">
select
<include refid="allColumns"/>
from accesstoaddress a
where 1 = 1
<if test="type != null and type != ''">
and type = #{type}
</if>
<if test="roleId != null and roleId != ''">
and a.role_id = #{roleId}
</if>
<if test="menuparent != null and menuparent != ''">
and a.menuparent = #{menuparent}
</if>
and a.state != 3
</select>
<select id="findMenusByNoParent" resultMap="accesstoAddress">
select
<include refid="allColumns"></include>
from accesstoaddress a
where 1 = 1
and a.menuparent = 0
</select>
<select id="findAccessstoAddressByParent" resultMap="accesstoAddress" parameterType="INTEGER">
select
<include refid="allColumns"></include>
from accesstoaddress a
where 1 = 1
and a.menuparent = #{id}
</select>
<select id="findAccessToAddressByUser" resultMap="accesstoAddress" parameterType="map">
select
<include refid="allColumns"/>
from
AccessToAddressByUser a
where authority = #{roleId}
<if test="userId != '' and userId != null ">
and uid = #{userId}
</if>
<if test="menuparent != null and menuparent != ''">
and menuparent = #{menuparent}
</if>
</select>
<select id="findAccessToAddressByList" resultMap="accesstoAddress" parameterType="list">
select
<include refid="allColumns"/>
from accesstoaddress a
where a.id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>

35
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/CallBackLogMapper.xml

@ -0,0 +1,35 @@
<?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">
<!-- depository -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.CallBackLogMapper">
<resultMap id="callBackMap" type="com.dreamchaser.depository_manage.entity.CallBackLog">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="msg_signature" property="msg_signature" jdbcType="VARCHAR" />
<result column="timestamp" property="timestamp" jdbcType="INTEGER" />
<result column="nonce" property="nonce" jdbcType="VARCHAR" />
<result column="echostr" property="echostr" jdbcType="VARCHAR" />
<result column="xmlstr" property="xmlstr" jdbcType="VARCHAR" />
<result column="jsonstr" property="jsonstr" jdbcType="VARCHAR" />
<result column="reqdata" property="reqdata" jdbcType="VARCHAR"/>
<result column="addtime" property="addtime" jdbcType="INTEGER"/>
</resultMap>
<insert id="addCallBackLog">
INSERT INTO callback_log (
id, msg_signature, timestamp,nonce,echostr,xmlstr,jsonstr,reqdata,addtime
) VALUES (
#{id},
#{msg_signature},
#{timestamp},
#{nonce},
#{echostr},
#{xmlstr},
#{jsonstr},
#{reqdata},
#{addtime}
)
</insert>
</mapper>

168
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/CompanyMapper.xml

@ -0,0 +1,168 @@
<?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">
<!-- depository -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.CompanyMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="companyMap" type="com.dreamchaser.depository_manage.entity.Company">
<id column="cid" property="cid" jdbcType="INTEGER" />
<result column="cname" property="cname" jdbcType="VARCHAR" />
<result column="state" property="state" jdbcType="INTEGER"/>
<result column="parentId" property="parentId" jdbcType="INTEGER"/>
<result column="introduce" property="introduce" jdbcType="VARCHAR"/>
</resultMap>
<!-- This code was generated by TableGo tools, mark 1 end. -->
<!-- This code was generated by TableGo tools, mark 2 begin. -->
<!-- 表查询字段 -->
<sql id="allColumns">
c.cid, c.cname ,c.state , c.parentId,c.introduce
</sql>
<!-- 查询所有数据 -->
<select id="findCompanyAll" resultMap="companyMap">
SELECT
<include refid="allColumns" />
FROM company c
Where c.state != 3
</select>
<select id="findcompanyById" resultMap="companyMap" parameterType="int">
select <include refid="allColumns"/>
from company c
where c.cid = #{id}
</select>
<!-- 根据条件查询公司-->
<select id="findCompanyByCondition" resultMap="companyMap" parameterType="map">
select
<include refid="allColumns"/>
from company c
where 1 = 1
<if test="id != null and id !=''">
and c.cid = #{id}
</if>
<if test="cname != null and cname != ''">
and c.cname LIKE CONCAT('%', #{cname}, '%')
</if>
<if test="introduce != null and introduce !=''">
and c.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="parentId != null">
AND c.parentId = #{parentId}
</if>
<if test="state != null">
and c.state = #{state}
</if>
and c.state != 3
</select>
<!-- 根据条件参数查询数据列表数目 -->
<select id="findCountByCondition" resultType="int" parameterType="map">
SELECT count(*)
from company c
where 1 = 1
<if test="id != null and id !=''">
and c.cid = #{id}
</if>
<if test="cname != null and cname != ''">
and c.cname LIKE CONCAT('%', #{cname}, '%')
</if>
<if test="introduce != null and introduce !=''">
and c.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="parentId != null">
AND c.parentId = #{parentId}
</if>
and c.state != 3
</select>
<!--根据父级查询公司信息-->
<select id="findCompanyByParentId" resultMap="companyMap" parameterType="int">
select
<include refid="allColumns"/>
from company c
where c.state != 3 and c.parentId = #{parentId}
</select>
<!-- 根据主键删除数据 -->
<delete id="deleteCompanyById" parameterType="int">
DELETE FROM company WHERE cid = #{id}
</delete>
<!-- 根据主键批量删除数据 -->
<delete id="deleteCompanyByIds" parameterType="list">
DELETE FROM company WHERE cid IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<!-- 修改数据 -->
<update id="updateCompany" parameterType="map">
UPDATE company
<set>
<if test="cname != null">
cname = #{cname},
</if>
<if test="introduce != null">
introduce = #{introduce},
</if>
<if test="state != null">
state = #{state},
</if>
<if test="parentId != null">
parentId = #{parentId}
</if>
</set>
WHERE cid = #{id}
</update>
<!--插入数据-->
<insert id="insertCompany" parameterType="map">
INSERT INTO company (
cid, cname, introduce,parentId
) VALUES (
#{id},
#{cname},
#{introduce},
#{parentId}
)
</insert>
<!-- 根据主键将状态改为删除-->
<update id="changeStateToDeletedById" parameterType="int">
update company
<set>
state = 3
</set>
where cid = #{id}
</update>
<!-- 根据主键批量将状态改为删除-->
<update id="changeStateToDeletedByIds" parameterType="list">
update company
<set>
state = 3
</set>
where cid in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<update id="updateStateByParam" parameterType="map">
update company
<set>
state = #{state}
</set>
where cid = #{cid}
<if test="oldState != null">
and state = #{oldState}
</if>
and state != 3
</update>
</mapper>

130
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/ConstructionUnitMapper.xml

@ -0,0 +1,130 @@
<?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="com.dreamchaser.depository_manage.mapper.ConstructionUnitMapper">
<resultMap id="constructionUnitMap" type="com.dreamchaser.depository_manage.entity.ConstructionUnit">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="state" property="state" jdbcType="INTEGER" />
<result column="introduce" property="introduce" jdbcType="VARCHAR" />
<result column="address" property="address" jdbcType="VARCHAR" />
<result column="createTime" property="createTime" jdbcType="INTEGER" />
</resultMap>
<sql id="allColumns">
id,`name`,state,introduce,address,createTime
</sql>
<insert id="addConstructionUnit">
insert into constructionunit(id,`name`,state,introduce,address,createTime)
values (
#{id},
#{name},
#{state},
#{introduce},
#{address},
#{createTime}
)
</insert>
<select id="findConstructionUnitAll" resultMap="constructionUnitMap">
select
<include refid="allColumns"/>
from constructionunit
where state = 1
</select>
<select id="findConstructionUnitByCondition" parameterType="map" resultMap="constructionUnitMap">
select
<include refid="allColumns"/>
from constructionunit
where 1 = 1
<if test="name != null and name != ''">
and `name` like CONCAT('%',#{name},'%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
<if test="introduce != null and introduce != ''">
and introduce like concat('%',#{introduce},'%')
</if>
<if test="address != null and address != ''">
and address like concat('%',#{address},'%')
</if>
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findConstructionUnitCountByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from constructionunit
where 1 = 1
<if test="name != null and name != ''">
and `name` like CONCAT('%',#{name},'%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
<if test="introduce != null and introduce != ''">
and introduce like concat('%',#{introduce},'%')
</if>
<if test="address != null and address != ''">
and address like concat('%',#{address},'%')
</if>
</select>
<select id="findConstructionUnitById" resultMap="constructionUnitMap" parameterType="int">
select
<include refid="allColumns"/>
from constructionunit
where id = #{id}
</select>
<update id="updateConstructionUnit">
update constructionunit
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="introduce != null and introduce != ''">
introduce = #{introduce},
</if>
<if test="address != null and address != ''">
address = #{address}
</if>
</set>
where id = #{id}
</update>
<update id="updateConstructionUnitState">
update constructionunit
<set>
<if test="state != null and state != ''">
state = #{state},
</if>
</set>
where id = #{id}
</update>
<delete id="deleteConstructionUnitById" parameterType="int">
delete from constructionunit where id = #{id}
</delete>
<delete id="deleteConstructionUnitByIds" parameterType="list">
delete from constructionunit where id in
<foreach collection="list" item="id" index="index" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

390
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml

@ -0,0 +1,390 @@
<?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">
<!-- depository -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.DepositoryMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="depositoryMap" type="com.dreamchaser.depository_manage.entity.Depository">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="dname" property="dname" jdbcType="VARCHAR"/>
<result column="address" property="address" jdbcType="VARCHAR"/>
<result column="introduce" property="introduce" jdbcType="VARCHAR"/>
<result column="parentId" property="parentId" jdbcType="INTEGER"/>
<result column="cid" property="cid" jdbcType="INTEGER"/>
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="adminorg" property="adminorg" jdbcType="VARCHAR"/>
<result column="minNumber" property="minNumber" jdbcType="INTEGER"/>
<result column="maxNumber" property="maxNumber" jdbcType="INTEGER"/>
</resultMap>
<resultMap id="inventoryByDname" type="com.dreamchaser.depository_manage.pojo.InventoryByDname">
<result column="inventory" property="inventory" jdbcType="INTEGER"/>
<result column="dname" property="dname" jdbcType="VARCHAR"/>
</resultMap>
<!-- This code was generated by TableGo tools, mark 1 end. -->
<!-- This code was generated by TableGo tools, mark 2 begin. -->
<!-- 表查询字段 -->
<sql id="allColumns">
d.id, d.dname, d.address, d.introduce,d.state,d.parentId,d.cid,d.code,d.adminorg,d.maxNumber,d.minNumber
</sql>
<!-- 视图查询字段-->
<sql id="depositoryAndCompany">
id,dname,address,introduce,state,parentId,cid,cname,code,adminorg,minNumber,maxNumber
</sql>
<!-- This code was generated by TableGo tools, mark 2 end. -->
<!-- 根据id获取仓库名称 -->
<select id="findDepositoryNameById" resultType="string" parameterType="int">
SELECT
d.dname
FROM depository d where d.id=#{id}
</select>
<!-- &lt;!&ndash; 查询所有数据 &ndash;&gt;
<select id="findDepositoryAll" resultMap="depositoryMap">
SELECT
<include refid="allColumns" />
FROM depository d
Where d.state != 3
</select>-->
<!-- 查询所有数据 -->
<select id="findDepositoryAll" resultMap="depositoryMap">
SELECT
<include refid="depositoryAndCompany"/>
FROM depositoryandcompany dc
Where dc.state != 3
</select>
<select id="findDepositoryByParent" resultMap="depositoryMap" parameterType="int">
SELECT
<include refid="depositoryAndCompany"/>
FROM depositoryandcompany dc
Where dc.state != 3 and dc.parentId = #{did}
</select>
<select id="findDepositoryByParents" resultMap="depositoryMap" parameterType="list">
SELECT
<include refid="depositoryAndCompany"/>
FROM depositoryandcompany dc
Where dc.state != 3 and dc.parentId in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 获取当前部门仓库以及公共仓库-->
<select id="findDepositoryByAdminorg" resultMap="depositoryMap" parameterType="string">
SELECT
<include refid="allColumns"/>
FROM depository d WHERE 1 = 1 and d.state = 1
<if test="adminorg != null and adminorg != ''">
and d.adminorg = #{adminorg}
</if>
or d.adminorg = ''
</select>
<!-- 根据仓库编码获取仓库-->
<select id="findDepositoryByCode" resultMap="depositoryMap" parameterType="string">
SELECT
<include refid="allColumns"/>
FROM depository d WHERE 1 = 1 and d.state != 3
<if test="depositoryCode != null and depositoryCode !=''">
and d.code = #{depositoryCode}
</if>
</select>
<select id="findDepositoryByAdminorgAndParent" resultMap="depositoryMap" parameterType="map">
SELECT
<include refid="allColumns"/>
FROM depository d WHERE 1 = 1
<if test="adminorg != null and adminorg != ''">
and (d.adminorg = #{adminorg} or d.adminorg = 361)
</if>
<if test="parentId != null">
AND d.parentId = #{parentId}
</if>
or d.adminorg = '' and d.state != 3
</select>
<!-- 根据主键查询多个数据-->
<select id="selectDepositoryByIds" parameterType="list" resultMap="depositoryMap">
select
<include refid="allColumns"></include>
FROM depository d WHERE d.id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 根据条件查询数据列表 -->
<select id="findDepositoryByCondition" resultMap="depositoryMap" parameterType="map">
SELECT
<include refid="allColumns"/>
FROM depository d WHERE 1 = 1
<if test="depositoryId != null">
AND d.id = #{depositoryId}
</if>
<if test="dname != null and dname != ''">
AND d.dname LIKE CONCAT('%', #{dname}, '%')
</if>
<if test="address != null and address != ''">
AND d.address LIKE CONCAT('%', #{address}, '%')
</if>
<if test="introduce != null and introduce != ''">
AND d.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != '' ">
AND d.state = #{state}
</if>
<if test="parentId != null">
AND d.parentId = #{parentId}
</if>
<if test="cid != null">
and d.cid = #{cid}
</if>
<if test="adminorg != null">
and (d.adminorg = #{adminorg} or d.adminorg = '')
</if>
AND d.state != 3
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<!-- 根据条件参数查询数据列表数目 -->
<select id="findCountByCondition" resultType="int" parameterType="map">
SELECT count(*)
FROM depository d WHERE 1 = 1
<if test="dname != null and dname != ''">
AND d.dname LIKE CONCAT('%', #{dname}, '%')
</if>
<if test="address != null and address != ''">
AND d.address LIKE CONCAT('%', #{address}, '%')
</if>
<if test="introduce != null and introduce != ''">
AND d.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != '' ">
AND d.state = #{state}
</if>
<if test="parentId != null">
AND d.parentId = #{parentId}
</if>
<if test="cid != null">
and d.cid = #{cid}
</if>
<if test="adminorg != null">
and d.adminorg = #{adminorg}
</if>
AND d.state != 3
</select>
<select id="getParentByDepository" resultMap="depositoryMap" parameterType="int">
SELECT
<include refid="allColumns"/>
FROM depository d WHERE d.parentId = #{parentId}
</select>
<!-- 根据主键查询数据-->
<select id="findDepositoryById" resultMap="depositoryMap" parameterType="Integer">
SELECT
<include refid="allColumns"/>
FROM depository d WHERE d.id = #{id}
</select>
<select id="findDepositoryByIds" resultMap="depositoryMap" parameterType="list">
SELECT
<include refid="allColumns"/>
FROM depository d WHERE d.id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 插入数据 -->
<insert id="insertDepository" parameterType="map">
INSERT INTO depository (
id, dname, address, introduce,parentId,cid,code,adminorg,maxNumber,minNumber
) VALUES (
#{id},
#{dname},
#{address},
#{introduce},
#{parentId},
#{cid},
#{code},
#{adminorg},
#{maxNumber},
#{minNumber}
)
</insert>
<!-- 批量插入数据
<insert id="insertDepositorys" parameterType="list">
INSERT INTO depository (
id, dname, address, introduce
) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(
#{item.id},
#{item.dname},
#{item.address},
#{item.introduce}
)
</foreach>
</insert>
-->
<!-- 修改数据 -->
<update id="updateDepository" parameterType="map">
UPDATE depository
<set>
<if test="dname != null">
dname = #{dname},
</if>
<if test="address != null">
address = #{address},
</if>
<if test="introduce != null">
introduce = #{introduce},
</if>
<if test="state != null">
state = #{state},
</if>
<if test="parentId != null">
parentId = #{parentId},
</if>
<if test="cid != null">
cid = #{cid},
</if>
<if test="adminorg != null">
adminorg = #{adminorg},
</if>
<if test="code != null">
code = #{code},
</if>
<if test="minNumber != null and minNumber != ''">
minNumber = #{minNumber},
</if>
<if test="maxNumber != null and maxNumber != ''">
maxNumber = #{maxNumber}
</if>
</set>
WHERE id = #{id}
</update>
<!-- 批量修改数据
<update id="updateDepositorys" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE depository
<set>
<if test="item.dname != null">
dname = #{item.dname},
</if>
<if test="item.address != null">
address = #{item.address},
</if>
<if test="item.introduce != null">
introduce = #{item.introduce}
</if>
</set>
WHERE id = #{item.id}
</foreach>
</update>-->
<!-- 根据主键删除数据 -->
<delete id="deleteDepositoryRecordById" parameterType="int">
DELETE FROM depository WHERE id = #{id}
</delete>
<!-- 根据主键批量删除数据-->
<delete id="deleteDepositoryRecordByIds" parameterType="list">
DELETE FROM depository WHERE id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<!-- 根据主键将状态改为删除-->
<update id="changeStateToDeletedById" parameterType="int">
UPDATE depository
<set>
state = 3
</set>
WHERE id = #{id}
</update>
<update id="updateStateByParam" parameterType="map">
UPDATE depository
<set>
state = #{state}
</set>
where id = #{id}
<if test="oldState != null">
and state = #{oldState}
</if>
and state != 3
</update>
<!-- 根据主键批量将状态改为删除-->
<update id="changeStateToDeletedByIds" parameterType="list">
update depository
<set>
state = 3
</set>
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<!-- 获取仓库总数-->
<select id="findAllCountByState" resultType="int">
select count(*)
from depository d
where d.state != 3
</select>
<select id="getToDayInventoryByDName" resultType="int" parameterType="map">
select ifnull(sum(quantity),0.0)
from depositoryandinventory
where 1 = 1
<if test="dname != null and dname !=''">
and dname = #{dname}
</if>
<if test="dcode != null and dcode !=''">
and dcode = #{dcode}
</if>
</select>
<select id="getToDayInventoryByDNameTest" resultMap="inventoryByDname">
select ifnull(sum(quantity),0.0) as inventory ,dname
from depositoryandinventory
where 1 = 1
GROUP BY dname
</select>
<select id="findUserNameByDepositoryId" resultType="string" parameterType="int">
select uname
from depositoryanduser
where did = #{depositoryId}
</select>
</mapper>

1725
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml

File diff suppressed because it is too large

391
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/GroupMapper.xml

@ -0,0 +1,391 @@
<?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="com.dreamchaser.depository_manage.mapper.GroupMapper">
<!-- 字段映射 (用于视图)-->
<resultMap id="groupInfoMap" type="com.dreamchaser.depository_manage.entity.GroupInfo">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="mid" property="mid" jdbcType="INTEGER"/>
<result column="gid" property="gid" jdbcType="INTEGER"/>
<result column="quantity" property="quantity" jdbcType="INTEGER"/>
<result column="mtid" property="mtid" jdbcType="INTEGER"/>
<result column="shelfLife" property="shelfLife" jdbcType="INTEGER"/>
<result column="gcode" property="gcode" jdbcType="VARCHAR"/>
<result column="mname" property="mname" jdbcType="VARCHAR"/>
<result column="tname" property="tname" jdbcType="VARCHAR"/>
<result column="mcode" property="mcode" jdbcType="VARCHAR"/>
<result column="version" property="version" jdbcType="VARCHAR"/>
<result column="munit" property="munit" jdbcType="VARCHAR"/>
<result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="texture" property="texture" jdbcType="VARCHAR"/>
<result column="productionPlace" property="productionPlace" jdbcType="VARCHAR"/>
<result column="brand" property="brand" jdbcType="VARCHAR"/>
<result column="mremark" property="mremark" jdbcType="VARCHAR"/>
<result column="gremark" property="gremark" jdbcType="VARCHAR"/>
<result column="gname" property="gname" jdbcType="VARCHAR"/>
<result column="createTime" property="createTime" jdbcType="INTEGER"/>
<result column="gstate" property="gstate" jdbcType="INTEGER"/>
</resultMap>
<!-- 用于组合映射-->
<resultMap id="groupMap" type="com.dreamchaser.depository_manage.entity.Group">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="gname" property="gname" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
<result column="createTime" property="createTime" jdbcType="INTEGER"/>
<result column="state" property="state" jdbcType="INTEGER"/>
</resultMap>
<!-- 用于组合与物料的映射-->
<resultMap id="materialForGroupMap" type="com.dreamchaser.depository_manage.entity.MaterialForGroup">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="mid" property="mid" jdbcType="INTEGER"/>
<result column="gid" property="gid" jdbcType="INTEGER"/>
<result column="quantity" property="quantity" jdbcType="INTEGER"/>
<result column="unit" property="unit" jdbcType="VARCHAR"/>
</resultMap>
<!-- 用于视图-->
<sql id="allColumnsForView">
id,mid,gid,quantity,mtid,shelfLife,gcode,mname,tname,mcode,version,munit,texture,productionPlace,brand,mremark,createTime,gstate,gname,unit,gremark
</sql>
<!-- 用于组合-->
<sql id="allColumnsForGroup">
id,code,createTime,state,gname,remark
</sql>
<!-- 用于物料对于组合的映射-->
<sql id="allColumnsForMaterialForGroup">
id,mid,gid,quantity,unit
</sql>
<select id="findAllGroup" resultMap="groupInfoMap">
select
<include refid="allColumnsForView"/>
from materialforgroup
</select>
<select id="findGroupOnlyByCondition" resultMap="groupMap" parameterType="map">
select
<include refid="allColumnsForGroup"/>
from `group`
where 1 = 1
<if test="code != null and code !=''">
and code = #{code}
</if>
<if test="gid != null and gid != ''">
and id = #{gid}
</if>
<if test="createTime != null and createTime != ''">
and createTime = #{createTime}
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
<if test="gname != null and gname != ''">
and gname like concat('%',#{gname},'%')
</if>
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findGroupOnlyById" resultMap="groupMap" parameterType="int">
select
<include refid="allColumnsForGroup"/>
from `group`
where id = #{id}
</select>
<select id="findAllGroupOnly" resultMap="groupMap" parameterType="string">
select
<include refid="allColumnsForGroup"/>
from `group`
where state = 1
<if test="gname != null and gname != ''">
and gname like concat('%',#{gname},'%')
</if>
</select>
<select id="findAllGroupOnlyCount" resultType="int" parameterType="map">
select
Count(*)
from `group`
where 1 = 1
<if test="code != null and code !=''">
and code = #{code}
</if>
<if test="createTime != null and createTime != ''">
and createTime = #{createTime}
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
</select>
<select id="findGroupById" resultMap="groupInfoMap" parameterType="int">
select
<include refid="allColumnsForView"/>
from materialforgroup
where id = #{id}
</select>
<insert id="addGroup" useGeneratedKeys="true" keyProperty="id">
INSERT INTO `group` (
id, code, createTime, state,gname,remark
) VALUES (
#{id},
#{code},
#{createTime},
#{state},
#{gname},
#{remark}
)
</insert>
<insert id="addGroupForMaterial">
INSERT INTO groupformaterial (
id, mid, gid, quantity,unit
) VALUES (
#{id},
#{mid},
#{gid},
#{quantity},
#{unit}
)
</insert>
<select id="findGroupByCondition" resultMap="groupInfoMap" parameterType="map">
select
<include refid="allColumnsForView"/>
from materialforgroup
where 1 = 1
<if test="mid != null and mid != ''">
and mid = #{mid}
</if>
<if test="gid != null and gid != ''">
and gid = #{gid}
</if>
<if test="quantity != null">
and quantity = #{quantity}
</if>
<if test="gcode != null and gcode !=''">
and gcode = #{gcode}
</if>
<if test="mname != null and mname != ''">
and mname like CONCAT('%', #{mname}, '%')
</if>
<if test="mtid != null and mtid != ''">
and mtid = #{mtid}
</if>
<if test="tname != null and tname != ''">
and tname like CONCAT('%',#{tname},'%')
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
<if test="version != null and version != ''">
and version like CONCAT('%',#{version},'%')
</if>
<if test="unit != null and unit != ''">
and unit like CONCAT('%',#{unit},'%')
</if>
<if test="texture != null and texture != ''">
and texture like CONCAT('%',#{texture},'%')
</if>
<if test="shelfLife != null and shelfLife != ''">
and shelfLife = #{shelfLife}
</if>
<if test="productionPlace != null and productionPlace!= ''">
and productionPlace like CONCAT('%',#{productionPlace},'%')
</if>
<if test="brand != null and brand != ''">
and brand like CONCAT('%',#{brand},'%')
</if>
<if test="remark != null and remark != ''">
and remark like CONCAT('%',remark,'%')
</if>
<if test="createTime != null and createTime != ''">
and createTime = #{createTime}
</if>
<if test="gstate != null and gstate != ''">
and gstate = #{gstate}
</if>
<if test="gname != null and gname != ''">
and gname = #{gname}
</if>
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findGroupInfoByGid" resultMap="groupInfoMap" parameterType="int">
select
<include refid="allColumnsForView"/>
from materialforgroup
where gid = #{gid}
</select>
<select id="findGroupByGids" resultMap="groupMap" parameterType="list">
select
<include refid="allColumnsForGroup"/>
from `group`
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="findGroupCountByCondition" parameterType="map" resultType="int">
select
count(*)
from materialforgroup
where 1 = 1
<if test="mid != null and mid != ''">
and mid = #{mid}
</if>
<if test="gid != null and gid != ''">
and gid = #{gid}
</if>
<if test="quantity != null">
and quantity = #{quantity}
</if>
<if test="gcode != null and gcode !=''">
and gcode = #{gcode}
</if>
<if test="mname != null and mname != ''">
and mname like CONCAT('%', #{mname}, '%')
</if>
<if test="mtid != null and mtid != ''">
and mtid = #{mtid}
</if>
<if test="tname != null and tname != ''">
and tname like CONCAT('%',#{tname},'%')
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
<if test="version != null and version != ''">
and version like CONCAT('%',#{version},'%')
</if>
<if test="unit != null and unit != ''">
and unit like CONCAT('%',#{unit},'%')
</if>
<if test="texture != null and texture != ''">
and texture like CONCAT('%',#{texture},'%')
</if>
<if test="shelfLife != null and shelfLife != ''">
and shelfLife = #{shelfLife}
</if>
<if test="productionPlace != null and productionPlace!= ''">
and productionPlace like CONCAT('%',#{productionPlace},'%')
</if>
<if test="brand != null and brand != ''">
and brand like CONCAT('%',#{brand},'%')
</if>
<if test="remark != null and remark != ''">
and remark like CONCAT('%',remark,'%')
</if>
<if test="createTime != null and createTime != ''">
and createTime = #{createTime}
</if>
<if test="gstate != null and gstate != ''">
and gstate = #{gstate}
</if>
</select>
<update id="updateMaterialForGroup">
update
groupformaterial
<set>
<if test="gid != null and gid != ''">
gid = #{gid},
</if>
<if test="mid != null and mid != ''">
mid = #{mid},
</if>
<if test="quantity != null and quantity != ''">
quantity = #{quantity},
</if>
<if test="unit != null">
unit = #{unit}
</if>
</set>
where id = #{id}
</update>
<select id="findQrCodeByGid" parameterType="int" resultType="String">
select code
from gidandcode
where gid = #{gid}
</select>
<insert id="addQrCodeByGroup">
insert into gidandcode(id,gid,code)
values (
#{id},
#{gid},
#{code}
)
</insert>
<update id="updateGroupOnly">
update
`group`
<set>
<if test="code != null and code != ''">
code = #{code},
</if>
<if test="createTime != null and createTime != ''">
createTime = #{createTime},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="gname != null and gname !=''">
gname = #{gname},
</if><if test="applyRemark != null and applyRemark !=''">
remark = #{applyRemark}
</if>
</set>
where id = #{id}
</update>
<delete id="delMaterialForGroupById" parameterType="int">
delete from groupformaterial where id = #{id}
</delete>
<delete id="delMaterialForGroupByIds" parameterType="list">
delete from groupformaterial where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="delGroup" parameterType="int">
delete from `group` where id = #{id}
</delete>
<select id="findGroupByCode" parameterType="String" resultMap="groupMap">
select
<include refid="allColumnsForGroup"/>
from `group`
where code = #{code}
</select>
</mapper>

1086
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml

File diff suppressed because it is too large

260
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml

@ -0,0 +1,260 @@
<?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">
<!-- material_type -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.MaterialTypeMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="materialTypeMap" type="com.dreamchaser.depository_manage.entity.MaterialType">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="tname" property="tname" jdbcType="VARCHAR" />
<result column="introduce" property="introduce" jdbcType="VARCHAR" />
<result column="state" property="state" jdbcType="INTEGER"/>
<result column="parentId" property="parentId" jdbcType="INTEGER"/>
<result column="oldId" property="oldId" jdbcType="INTEGER"/>
</resultMap>
<!-- 表查询字段 -->
<sql id="allColumns">
mt.id, mt.tname, mt.introduce, mt.state,mt.parentId,mt.oldId
</sql>
<!-- This code was generated by TableGo tools, mark 2 end. -->
<!-- 查询所有数据 -->
<select id="findMaterialTypeAll" resultMap="materialTypeMap">
SELECT
<include refid="allColumns" />
FROM material_type mt
where mt.state != 3 and mt.state != 4
</select>
<!-- 查询所有顶级父类 -->
<select id="findMaterialTypeNoParent" resultMap="materialTypeMap">
select
<include refid="allColumns" />
FROM material_type mt
where mt.state = 1 and mt.parentId = 0
</select>
<select id="findMaterialTypeCountByCondition" resultType="int" parameterType="map">
select count(*)
FROM material_type mt WHERE 1 = 1
<if test="tname != null and tname != ''">
AND mt.tname LIKE CONCAT('%', #{tname}, '%')
</if>
<if test="introduce != null and introduce != ''">
AND mt.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != ''" >
and mt.state = #{state}
</if>
<if test="parentId != null">
and mt.parentId = #{parentId}
</if>
<if test="oldId != null">
and mt.oldId = #{oldId}
</if>
and mt.state != 3 and mt.state != 4
</select>
<!-- 根据条件参数查询数据列表 -->
<select id="findMaterialTypeByCondition" resultMap="materialTypeMap" parameterType="map">
SELECT
<include refid="allColumns" />
FROM material_type mt WHERE 1 = 1
<if test="tname != null and tname != ''">
AND mt.tname LIKE CONCAT('%', #{tname}, '%')
</if>
<if test="introduce != null and introduce != ''">
AND mt.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != ''" >
and mt.state = #{state}
</if>
<if test="parentId != null">
and mt.parentId = #{parentId}
</if>
<if test="oldId != null">
and mt.oldId = #{oldId}
</if>
and mt.state != 3 and mt.state != 4
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<!-- 根据主键查询数据 -->
<select id="findMaterialTypeNameById" resultType="string" parameterType="integer">
SELECT
mt.tname
FROM material_type mt WHERE mt.id = #{id}
</select>
<!-- 根据物料类型id查询数据 -->
<select id="findMaterialTypeNameByOldId" resultType="string" parameterType="long">
SELECT
mt.tname
FROM material_type mt WHERE mt.oldId = #{oldId}
</select>
<!-- 根据父类查询数据 -->
<select id="findMaterialTypeByParent" resultMap="materialTypeMap" parameterType="long">
SELECT
<include refid="allColumns" />
FROM material_type mt
WHERE mt.parentId = #{parentId}
</select>
<!-- 根据主键批量获取数据 -->
<select id="findMaterialTypeByOldIds" resultMap="materialTypeMap" parameterType="list">
SELECT
<include refid="allColumns" />
FROM material_type mt
WHERE mt.oldId in
<foreach collection="list" index="index" item="item" open="("
separator="," close=")">
#{item}
</foreach>
</select>
<!-- 根据主键查询数据 -->
<select id="findMaterialTypeById" resultMap="materialTypeMap" parameterType="integer">
SELECT
<include refid="allColumns" />
FROM material_type mt WHERE mt.oldId = #{id} and mt.state != 3 and mt.state != 4
</select>
<!-- 根据主键查询数据 -->
<select id="findMaterialTypeByOldId" resultMap="materialTypeMap" parameterType="long">
SELECT
<include refid="allColumns" />
FROM material_type mt WHERE mt.oldId = #{oldId} and mt.state != 3 and mt.state != 4
</select>
<!-- 根据主键查询数据
<select id="findMaterialTypeByIds" resultMap="materialTypeMap" parameterType="list">
SELECT
<include refid="allColumns" />
FROM material_type mt WHERE mt.id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>-->
<!-- 插入数据 -->
<insert id="insertMaterialType" parameterType="map">
INSERT INTO material_type (
id, tname, introduce,parentId,oldId
) VALUES (
#{id},
#{tname},
#{introduce},
#{parentId},
#{oldId}
)
</insert>
<!-- 批量插入数据
<insert id="insertMaterialTypes" parameterType="list">
INSERT INTO material_type (
id, tname, introduce
) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(
#{item.id},
#{item.tname},
#{item.introduce}
)
</foreach>
</insert>-->
<!-- 修改数据 -->
<update id="updateMaterialType" parameterType="map">
UPDATE material_type
<set>
<if test="tname != null">
tname = #{tname},
</if>
<if test="introduce != null">
introduce = #{introduce},
</if>
<if test="state != null">
state = #{state},
</if>
<if test="parentId != null">
parentId = #{parentId}
</if>
</set>
WHERE oldId = #{id}
</update>
<!-- 批量修改数据 -->
<update id="updateMaterialTypes" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE material_type
<set>
<if test="item.tname != null">
tname = #{item.tname},
</if>
<if test="item.introduce != null">
introduce = #{item.introduce}
</if>
<if test="state != null">
state = #{state}
</if>
<if test="parentId != null">
parentId = #{parentId}
</if>
</set>
WHERE oldId = #{item.id}
</foreach>
</update>
<!-- 根据主键删除数据 -->
<delete id="deleteMaterialTypeById" parameterType="int">
DELETE FROM material_type WHERE oldId = #{id}
</delete>
<!-- 根据主键批量删除数据-->
<delete id="deleteMaterialTypeByIds" parameterType="list">
DELETE FROM material_type WHERE oldId IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<!-- 根据主键将状态改为删除-->
<update id="changeStateToDeletedById" parameterType="int">
update material_type
<set>
state = 3
</set>
where oldId = #{id}
</update>
<!-- 根据主键批量将状态改为删除-->
<update id="changeStateToDeletedByIds" parameterType="list">
update material_type
<set>
state = 3
</set>
where oldId in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<update id="updateStateByParam" parameterType="map">
update material_type
<set>
state = #{state}
</set>
where id = #{id}
<if test="oldState != null">
and state = #{oldState}
</if>
and state != 3 and state != 4
</update>
</mapper>

170
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/NoticeMapper.xml

@ -0,0 +1,170 @@
<?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">
<!-- notice -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.NoticeMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="noticeMap" type="com.dreamchaser.depository_manage.entity.Notice">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="title" property="title" jdbcType="VARCHAR" />
<result column="content" property="content" jdbcType="VARCHAR" />
<result column="viewRangeId" property="viewRangeId" jdbcType="VARCHAR" />
<result column="time" property="time" jdbcType="INTEGER" />
<result column="state" property="state" jdbcType="INTEGER" />
<result column="userId" property="userId" jdbcType="INTEGER" />
</resultMap>
<!-- 表查询字段 -->
<sql id="allColumns">
n.id, n.title, n.content, n.time,n.state,n.userId,n.viewRangeId
</sql>
<!-- 查询所有 -->
<select id="findNoticeAll" resultMap="noticeMap">
SELECT
<include refid="allColumns" />
FROM notice n
</select>
<!-- 根据条件参数查询列表 -->
<select id="findNoticeByCondition" resultMap="noticeMap" parameterType="map">
SELECT
<include refid="allColumns" />
FROM notice n WHERE 1 = 1
<if test="title != null and title != ''">
AND n.title LIKE CONCAT('%', #{title}, '%')
</if>
<if test="content != null and content != ''">
AND n.content LIKE CONCAT('%', #{content}, '%')
</if>
<if test="startDate != null and startDate != ''">
AND n.time &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND n.time &lt;= #{endDate}
</if>
<if test="userId != null and userId != ''">
and n.userId = #{userId}
</if>
<if test="state != null and state != ''">
and n.state = #{state}
</if>
order by n.time DESC
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findNoticeById" resultMap="noticeMap" parameterType="int">
SELECT
<include refid="allColumns" />
FROM notice n WHERE n.id = #{id}
</select>
<!-- 根据主键查询信息 -->
<select id="findNoticeByIds" resultMap="noticeMap" parameterType="list">
SELECT
<include refid="allColumns" />
FROM notice n WHERE n.id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 新增信息 -->
<insert id="addNotice" useGeneratedKeys="true" keyProperty="id">
INSERT INTO notice (
title, content, time,userId,state,viewRangeId
) VALUES (
#{title},
#{content},
#{time},
#{userId},
#{state},
#{viewRangeId}
)
</insert>
<!-- 批量新增信息 -->
<insert id="addNotices" parameterType="list">
INSERT INTO notice (
id, title, content, time,userId,state,viewRangeId
) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(
#{item.id},
#{item.title},
#{item.content},
#{item.time},
#{item.userId},
#{item.state},
#{item.viewRangeId}
)
</foreach>
</insert>
<!-- 修改信息-->
<update id="updateNotice">
update notice
<set>
<if test="title != null and title !=''">
title = #{title},
</if>
<if test="content != null">
content = #{content},
</if>
<if test="time != null and time != ''">
time = #{time},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="viewRangeId != null and viewRangeId != ''">
viewRangeId = #{viewRangeId}
</if>
</set>
where id = #{id}
</update>
<!-- 批量修改信息 -->
<update id="updateNotices" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE notice
<set>
<if test="item.title != null">
title = #{item.title},
</if>
<if test="item.content != null">
content = #{item.content},
</if>
<if test="item.time != null">
time = #{item.time},
</if>
<if test="item.state != null and item.state != ''">
state = #{item.state},
</if>
<if test="item.viewRangeId != null and item.viewRangeId != ''">
viewRangeId = #{item.viewRangeId}
</if>
</set>
WHERE id = #{item.id}
</foreach>
</update>
<!-- 根据主键删除 -->
<delete id="deleteNoticeById" parameterType="int">
DELETE FROM notice WHERE id = #{id}
</delete>
<!-- 根据主键批量删除 -->
<delete id="deleteNoticeByIds" parameterType="list">
DELETE FROM notice WHERE id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

500
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/PlaceMapper.xml

@ -0,0 +1,500 @@
<?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">
<!-- notice -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.PlaceMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="placeMap" type="com.dreamchaser.depository_manage.entity.Place">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="x" property="x" jdbcType="INTEGER"/>
<result column="y" property="y" jdbcType="INTEGER"/>
<result column="z" property="z" jdbcType="INTEGER"/>
<result column="mid" property="mid" jdbcType="INTEGER"/>
<result column="did" property="did" jdbcType="INTEGER"/>
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="kingdeecode" property="kingdeecode" jdbcType="VARCHAR"/>
<result column="min" property="min" jdbcType="INTEGER"/>
<result column="max" property="max" jdbcType="INTEGER"/>
<result column="state" property="state" jdbcType="INTEGER"/>
<result column="quantity" property="quantity" jdbcType="INTEGER"/>
<result column="flagForType" property="flagForType" jdbcType="INTEGER"/>
</resultMap>
<resultMap id="materialAndPlaceMap" type="com.dreamchaser.depository_manage.entity.MaterialAndPlace">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="mid" property="mid" jdbcType="INTEGER"/>
<result column="pid" property="pid" jdbcType="INTEGER"/>
<result column="did" property="did" jdbcType="INTEGER"/>
<result column="quantity" property="quantity" jdbcType="INTEGER"/>
<result column="max" property="max" jdbcType="INTEGER"/>
<result column="min" property="min" jdbcType="INTEGER"/>
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="kingdeecode" property="kingdeecode" jdbcType="VARCHAR"/>
</resultMap>
<resultMap id="MaterialAndPlaceForViewMap" type="com.dreamchaser.depository_manage.pojo.MaterialAndPlaceForViewP">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="mid" property="mid" jdbcType="INTEGER"/>
<result column="pid" property="pid" jdbcType="INTEGER"/>
<result column="type_id" property="type_id" jdbcType="INTEGER"/>
<result column="iid" property="iid" jdbcType="INTEGER"/>
<result column="depository_id" property="depository_id" jdbcType="INTEGER"/>
<result column="inventory" property="inventory" jdbcType="INTEGER"/>
<result column="price" property="price" jdbcType="INTEGER"/>
<result column="dcode" property="dcode" jdbcType="VARCHAR"/>
<result column="dname" property="dname" jdbcType="VARCHAR"/>
<result column="pcode" property="pcode" jdbcType="VARCHAR"/>
<result column="texture" property="texture" jdbcType="VARCHAR"/>
<result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="version" property="version" jdbcType="VARCHAR"/>
<result column="mcode" property="mcode" jdbcType="VARCHAR"/>
<result column="tname" property="tname" jdbcType="VARCHAR"/>
<result column="mname" property="mname" jdbcType="VARCHAR"/>
<result column="adminorg" property="adminorg" jdbcType="VARCHAR"/>
<result column="kingdeecode" property="kingdeecode" jdbcType="VARCHAR"/>
</resultMap>
<!-- 表查询字段 -->
<sql id="allColumns">
p.id,p.x,p.y,p.z,p.code,p.mid,p.did,p.min,p.max,p.state,p.quantity,p.flagForType,p.kingdeecode
</sql>
<sql id="allColumnsByMaterialAndPlace">
mp.id,mp.mid,mp.pid,mp.quantity,p.code,p.max,p.min,p.did
</sql>
<sql id="allColumnsForView">
depository_id,mname,type_id,tname,mcode,version,price,unit,texture,pcode,dname,adminorg,dcode,iid,inventory,id,pid,mid,kingdeecode
</sql>
<!-- 查询所有 -->
<select id="findPlaceAll" resultMap="placeMap">
SELECT
<include refid="allColumns"/>
FROM place p
where p.state != 3
</select>
<select id="findPlaceByMidAndDid" resultMap="placeMap" parameterType="map">
SELECT
<include refid="allColumns"/>
from materialandplace mp left join place p on p.id = mp.pid
where 1 = 1
<if test="mid != null and mid != ''">
and mp.mid = #{mid}
</if>
<if test="did != null and did != ''">
and ( p.did = #{did} or p.did = 0)
</if>
and p.state != 3
</select>
<select id="findPlaceByDidAndCode" resultMap="placeMap" parameterType="map">
SELECT
<include refid="allColumns"/>
FROM place p WHERE 1 = 1
<if test="code != '' and code != null">
and p.code = #{code}
</if>
<if test="kingdeecode != '' and kingdeecode != null">
and p.kingdeecode = #{kingdeecode}
</if>
<if test="did != '' and did != null">
and p.did = #{did}
</if>
and p.state != 3
</select>
<select id="findPlaceAndMaterialByDidAndMid" resultMap="MaterialAndPlaceForViewMap" parameterType="map">
select
<include refid="allColumnsForView"/>
FROM materialandplaceinfo WHERE 1 = 1
<if test="mid != '' and mid != null">
and mid = #{mid}
</if>
<if test="depositoryId != null and depositoryId != ''">
and depository_id = #{depositoryId}
</if>
and pstate != 3
</select>
<select id="findPlaceAndMaterialByDidsAndMid" resultMap="MaterialAndPlaceForViewMap" parameterType="map">
select
<include refid="allColumnsForView"/>
FROM materialandplaceinfo WHERE 1 = 1
<if test="mid != '' and mid != null">
and mid = #{mid}
</if>
and depository_id in
<foreach collection="list" index="index" item="did" open="(" separator="," close=")">
#{did}
</foreach>
and pstate != 3
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findPlaceAndMaterialForViewById" resultMap="MaterialAndPlaceForViewMap" parameterType="int">
select
<include refid="allColumnsForView"/>
FROM materialandplaceinfo WHERE id = #{id}
</select>
<select id="findPlaceAndMaterialCountByDidsAndMid" resultType="int" parameterType="map">
select
COUNT(*)
FROM materialandplaceinfo WHERE 1 = 1
<if test="mid != '' and mid != null">
and mid = #{mid}
</if>
and depository_id in
<foreach collection="list" index="index" item="did" open="(" separator="," close=")">
#{did}
</foreach>
and pstate != 3
</select>
<select id="findPlaceAndMaterialByCondition" parameterType="map" resultMap="MaterialAndPlaceForViewMap">
select
<include refid="allColumnsForView"/>
FROM materialandplaceinfo WHERE 1 = 1
<if test="depositoryId != null and depositoryId != ''">
and depository_id = #{depositoryId}
</if>
<if test="placeId != null and placeId != ''">
and pid = #{placeId}
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
<if test="mname != null and mname != ''">
and mname like CONCAT('%',#{mname},'%')
</if>
and pstate != 3
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findPlaceAndMaterialCountByCondition" parameterType="map" resultType="int">
select
count(*)
FROM materialandplaceinfo WHERE 1 = 1
<if test="depositoryId != null and depositoryId != ''">
and depository_id = #{depositoryId}
</if>
<if test="placeId != null and placeId != ''">
and pid = #{placeId}
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
<if test="mname != null and mname != ''">
and mname like CONCAT('%',#{mname},'%')
</if>
and pstate != 3
</select>
<!-- 根据条件参数查询列表 -->
<select id="findPlaceByCondition" resultMap="placeMap" parameterType="map">
SELECT
<include refid="allColumns"/>
FROM place p WHERE 1 = 1
<if test="id != null and id != ''">
and p.id = #{id}
</if>
<if test="x != null and x != ''">
AND p.x = #{x}
</if>
<if test="y != null and y != ''">
AND p.y = #{y}
</if>
<if test="z != null and z != ''">
AND p.z = #{z}
</if>
<if test="code != null and code != ''">
AND p.code LIKE CONCAT('%', #{code}, '%')
</if>
<if test="kingdeecode != '' and kingdeecode != null">
and p.kingdeecode = #{kingdeecode}
</if>
<if test="mid != null and mid != ''">
AND find_in_set(#{mid},p.mid)
</if>
<if test="did != null and did != ''">
AND p.did = #{did}
</if>
<if test="max != null and max != ''">
AND p.max = #{max}
</if>
<if test="min != null and min != ''">
AND p.min = #{min}
</if>
<if test="state != null and state != ''">
and p.state = #{state}
</if>
and p.state != 3
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findTrayByDepositoryId" resultMap="placeMap" parameterType="int">
SELECT
<include refid="allColumns"/>
FROM place p WHERE 1 = 1
<if test="did != null and did != ''">
AND p.did = #{did}
</if>
and p.flagForType = 2
</select>
<select id="findPlaceCountByCondition" parameterType="map" resultType="int">
SELECT
count(*)
FROM place p WHERE 1 = 1
<if test="id != null and id != ''">
and p.id = #{id}
</if>
<if test="x != null and x != ''">
AND p.x = #{x}
</if>
<if test="y != null and y != ''">
AND p.y = #{y}
</if>
<if test="code != null and code != ''">
AND p.code LIKE CONCAT('%', #{code}, '%')
</if>
<if test="kingdeecode != '' and kingdeecode != null">
and p.kingdeecode LIKE CONCAT('%', #{kingdeecode}, '%')
</if>
<if test="z != null and z != ''">
AND p.z = #{z}
</if>
<if test="mid != null and mid != ''">
AND p.mid = #{mid}
</if>
<if test="did != null and did != ''">
AND p.did = #{did}
</if>
<if test="max != null and max != ''">
AND p.max = #{max}
</if>
<if test="min != null and min != ''">
AND p.min = #{min}
</if>
<if test="state != null and state != ''">
and p.state = #{state}
</if>
and p.state != 3
</select>
<select id="findPlaceByDid" parameterType="int" resultMap="placeMap">
SELECT
<include refid="allColumns"/>
FROM place p WHERE 1 = 1 and p.did = #{did} and p.state != 3
</select>
<select id="findPlaceByMid" parameterType="int" resultMap="placeMap">
SELECT
<include refid="allColumns"/>
FROM materialandplace mp left join place p on p.id = mp.pid WHERE 1 = 1 and mp.mid = #{mid} and p.state != 3
</select>
<select id="findQuantityByMidAndPid" parameterType="map" resultType="int">
select quantity
from materialandplace
where pid = #{pid} and mid = #{mid}
</select>
<!-- 根据主键查询信息 -->
<select id="findPlaceById" resultMap="placeMap" parameterType="int">
SELECT
<include refid="allColumns"/>
FROM place p WHERE p.id = #{id}
</select>
<select id="findPlaceAndMaterialByPid" resultMap="materialAndPlaceMap" parameterType="int">
SELECT
<include refid="allColumnsByMaterialAndPlace"/>
FROM materialandplace mp left join place p on p.id = mp.pid WHERE 1 = 1 and p.id = #{id} and p.state != 3
</select>
<select id="findPlaceAndMaterialByMidAndPid" resultMap="materialAndPlaceMap" parameterType="map">
SELECT
<include refid="allColumnsByMaterialAndPlace"/>
FROM materialandplace mp left join place p on p.id = mp.pid
where 1 = 1
<if test="mid != null">
and mp.mid = #{mid}
</if>
<if test="pid != null">
and mp.pid = #{pid}
</if>
and p.state != 3
</select>
<select id="findPlaceAndMaterialById" resultMap="materialAndPlaceMap" parameterType="int">
SELECT
<include refid="allColumnsByMaterialAndPlace"/>
FROM materialandplace mp left join place p on p.id = mp.pid
where mp.id = #{id} and p.state != 3
</select>
<!-- 新增信息 -->
<insert id="InsertPlace">
INSERT INTO place (
id,x,y,z,code, mid,did,min,max,state,quantity,flagForType,kingdeecode
) VALUES (
#{id},
#{x},
#{y},
#{z},
#{code},
#{mid},
#{did},
#{min},
#{max},
#{state},
#{quantity},
#{flagType},
#{kingdeecode}
)
</insert>
<insert id="addMaterialOnPlace" parameterType="map" useGeneratedKeys="true" keyProperty="id">
insert into materialandplace(id,mid,pid,quantity)
values (
#{id},
#{mid},
#{pid},
#{quantity}
)
</insert>
<delete id="delMaterialOnPlace" parameterType="int">
DELETE FROM materialandplace WHERE id = #{id}
</delete>
<!-- 修改信息 -->
<update id="UpdatePlace">
UPDATE place
<set>
<if test="x != null">
x = #{x},
</if>
<if test="y != null">
y = #{y},
</if>
<if test="z != null">
z = #{z},
</if>
<if test="code != null">
code = #{code},
</if>
<if test="kingdeecode != null">
kingdeecode = #{kingdeecode},
</if>
<if test="mid != null">
mid = #{mid},
</if>
<if test="did != null">
did = #{did},
</if>
<if test="min != null">
min = #{min},
</if>
<if test="max != null">
max = #{max},
</if>
<if test="state != null and state !=''">
state = #{state},
</if>
<if test="quantity != null">
quantity = #{quantity}
</if>
</set>
WHERE id = #{id}
</update>
<update id="updateMaterialAndPlace">
update materialandplace
<set>
<if test="mid != null">
mid = #{mid},
</if>
<if test="quantity != null">
quantity = #{quantity},
</if>
<if test="pid != null">
pid = #{pid}
</if>
</set>
where id = #{id}
</update>
<!-- 根据主键删除 -->
<delete id="DelPlace" parameterType="int">
DELETE FROM place WHERE id = #{id}
</delete>
<!-- 根据主键批量将状态改为删除-->
<update id="changeStateToDeletedByIds" parameterType="list">
update place
<set>
state = 3
</set>
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<!-- 根据主键将状态改为删除-->
<update id="changeStateToDeletedById" parameterType="int">
UPDATE place
<set>
state = 3
</set>
WHERE id = #{id}
</update>
<!--获取当前仓库下的行-->
<select id="findPlaceXByDid" parameterType="int" resultType="int">
select DISTINCT x from place where did = #{did} and state != 3 and x is not null ORDER BY x desc
</select>
<!--获取当前仓库下的列-->
<select id="findPlaceYByDid" parameterType="map" resultType="int">
select DISTINCT y from place where did = #{did} and x = #{x} and state != 3 ORDER BY y desc
</select>
<!--获取当前仓库下的ceng-->
<select id="findPlaceZByDid" parameterType="map" resultType="int">
select DISTINCT z from place where did = #{did} and x = #{x} and state != 3 ORDER BY z desc
</select>
<select id="findPlaceCoutnByTypeForFlag" resultType="int" parameterType="map">
select
count(*)
from place
where 1 = 1
<if test="flag != null and flag != ''">
and flagForType = #{flag}
</if>
<if test="did != null and did != ''">
and did = #{did}
</if>
</select>
</mapper>

159
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/QrCodeMapper.xml

@ -0,0 +1,159 @@
<?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">
<!-- 产品信息记录(库存)(material) -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.QrCodeMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 条形码与物料对应-->
<resultMap id="QrCodeAndLocationMap" type="com.dreamchaser.depository_manage.entity.PidOrDidAndCode">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="pid" property="pid" jdbcType="INTEGER"/>
<result column="flag" property="flag" jdbcType="INTEGER"/>
<result column="depositoryId" property="depositoryId" jdbcType="INTEGER"/>
</resultMap>
<!-- 表查询字段 -->
<sql id="allColumns">
pdac.id,pdac.code,pdac.pid,pdac.flag,pdac.depositoryId
</sql>
<select id="findLocationByCondition" resultType="map" resultMap="QrCodeAndLocationMap">
select
<include refid="allColumns"/>
from pidordidandcode pdac
where 1 = 1
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="pid != null">
and pid = #{pid}
</if>
<if test="depositoryId != null and depositoryId != ''">
and depositoryId = #{depositoryId}
</if>
<if test="flag != null and flag != ''">
and flag = #{flag}
</if>
<if test="qrCode != null and qrCode!=''">
and code = #{qrCode}
</if>
</select>
<insert id="addQrCodeAndMaterial" parameterType="map">
insert into qrcodeandmaterial(id,barCode,mcode,flag)
values (
#{id},
#{qrCode},
#{mcode},
2
)
</insert>
<insert id="addQrCodeAndMaterialForMoreOne" parameterType="map">
insert into qrcodeandmaterial(id,mcode,barCode,flag)
values
<foreach collection="list" index="index" item="item" separator=",">
(#{id},
#{code},
#{item},
2
)
</foreach>
</insert>
<select id="selectQrCodeByMcode" parameterType="string" resultType="string">
select barCode
from qrcodeandmaterial
where mcode = #{mcode} and flag = 2
</select>
<select id="findMaterialCodeByQrCode" parameterType="string" resultType="string">
select mcode
from qrcodeandmaterial
where barCode = #{qrcode} and flag = 2
</select>
<!-- 删除映射-->
<delete id="deleteQrCodeAndMaterial" parameterType="map">
delete
from qrcodeandmaterial
where 1 = 1
<if test="qrCode != null and qrCode != ''">
and qrcode = #{qrCode}
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="codeFlag != null and codeFlag != ''">
and flag = #{codeFlag}
</if>
</delete>
<update id="updateQrCodeType">
update qrcodeandmaterial
<set>
<if test="codeFlag != null and codeFlag != ''">
flag = #{codeFlag}
</if>
</set>
where id = #{id}
</update>
<select id="selectQrCodeByDepositoryOrPlace" parameterType="map" resultType="string">
select code
from pidordidandcode
where 1 = 1
<if test="pid != null">
and pid = #{pid}
</if>
<if test="depositoryId != null and depositoryId != ''">
and depositoryId = #{depositoryId}
</if>
<if test="flag != null and flag != ''">
and flag = #{flag}
</if>
</select>
<insert id="addQrCodeByPidOrDid" parameterType="map">
insert into pidordidandcode(id,pid,depositoryId,flag,code)
values (
#{id},
#{pid},
#{depositoryId},
#{flag},
#{qrCode}
)
</insert>
<insert id="addQrCodeByPidOrDidForMoreOne" parameterType="map">
insert into pidordidandcode(id,pid,depositoryId,flag,code)
values
<foreach collection="list" index="index" item="item" separator=",">
( #{id},
#{pid},
#{depositoryId},
#{flag},
#{item})
</foreach>
</insert>
</mapper>

265
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/RoleMapper.xml

@ -0,0 +1,265 @@
<?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">
<!-- user -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.RoleMapper">
<!-- 字段映射(权限) -->
<!-- 权限映射-->
<resultMap id="postoruserroleMap" type="com.dreamchaser.depository_manage.entity.PostOrUserRole">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="classes" property="classes" jdbcType="INTEGER" />
<result column="role" property="role" jdbcType="INTEGER" />
<result column="userid" property="userid" jdbcType="INTEGER" />
<result column="did" property="did" jdbcType="INTEGER" />
</resultMap>
<resultMap id="depositoryAndrole" type="com.dreamchaser.depository_manage.pojo.RoleAndDepository">
<result column="prid" property="id" jdbcType="INTEGER"/>
<result column="userId" property="userId" jdbcType="INTEGER"/>
<result column="depositoryName" property="depositoryName" jdbcType="VARCHAR"/>
<result column="depositoryAddress" property="depositoryAddress" jdbcType="VARCHAR"/>
<result column="depositoryIntroduce" property="depositoryIntroduce" jdbcType="VARCHAR"/>
<result column="depositoryState" property="depositoryState" jdbcType="VARCHAR"/>
<result column="did" property="depositoryId" jdbcType="VARCHAR"/>
<result column="depositoryCode" property="depositoryCode" jdbcType="VARCHAR"/>
<result column="classes" property="classes" jdbcType="INTEGER"/>
</resultMap>
<resultMap id="materialTypeAndRole" type="com.dreamchaser.depository_manage.pojo.RoleAndMaterialType">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="classes" property="classes" jdbcType="INTEGER"/>
<result column="mtid" property="mtid" jdbcType="INTEGER"/>
<result column="uid" property="uid" jdbcType="INTEGER"/>
<result column="tname" property="tname" jdbcType="VARCHAR"/>
<result column="mtstate" property="mtstate" jdbcType="INTEGER"/>
<result column="mtintroduce" property="mtintroduce" jdbcType="VARCHAR"/>
<result column="mtparentId" property="mtparentId" jdbcType="INTEGER"/>
</resultMap>
<sql id="allColumns">
r.id,r.name
</sql>
<sql id="roleNameAnddepositoryName">
prid,userid as userId,dname as depositoryName,address as depositoryAddress ,introduce as depositoryIntroduce,state as depositoryState,did,classes,code as depositoryCode
</sql>
<sql id="roleNameAndMaterialTypeName">
id,classes,mtid,uid,tname,mtstate,mtintroduce,mtparentId
</sql>
<update id="updateUserOrPostRoleAndDepository" parameterType="map">
update postoruserrole
<set>
<if test="authority != null and authority != ''">
role = #{authority},
</if>
<if test="depositoryId != null and depositoryId != ''">
did = #{depositoryId}
</if>
</set>
where userid = #{userid}
</update>
<update id="UpdateRoleAndDepositoryById" parameterType="map">
update postoruserrole
<set>
<if test="authority != null and authority != ''">
role = #{authority},
</if>
<if test="depositoryId != null and depositoryId != ''">
did = #{depositoryId},
</if>
<if test="classes != null and classes != ''">
classes = #{classes}
</if>
</set>
where id = #{roleId}
</update>
<update id="UpdateRoleAndMaterialTypeById" parameterType="map">
update mtanduserrole
<set>
<if test="mtid != null and mtid != ''">
mtid = #{mtid},
</if>
<if test="classes != null and classes != ''">
classes = #{classes}
</if>
</set>
where id = #{roleId}
</update>
<insert id="addUserOrPostRoleAndDepository" parameterType="map">
INSERT INTO postoruserrole (
id, classes, role,userid,did
) VALUES (
#{id},
#{classes},
#{authority},
#{userid},
#{depositoryId}
)
</insert>
<insert id="addUserOrPostRoleAndDepositorys" parameterType="map">
INSERT INTO postoruserrole (
id, classes, role,userid,did
)
VALUES
<foreach collection="depositoryIds" index="index" item="did" separator="," >
(#{id},
#{classes},
#{authority},
#{userid},
#{did})
</foreach>
</insert>
<insert id="addUserOrPostRoleAndMaterialType" parameterType="map">
INSERT INTO mtanduserrole (
id, classes,uid,mtid
) VALUES (
#{id},
#{classes},
#{userid},
#{mtid}
)
</insert>
<insert id="addUserOrPostRoleAndMaterialTypes" parameterType="map">
INSERT INTO mtanduserrole (
id, classes,uid,mtid
)
VALUES
<foreach collection="mtIds" index="index" item="mtid" separator="," >
(#{id},
#{classes},
#{userid},
#{mtid})
</foreach>
</insert>
<select id="findDepositoryAndRole" parameterType="int" resultMap="depositoryAndrole">
select
<include refid="roleNameAnddepositoryName"/>
from userroleanddepository
where userid = #{userid} and state = 1
</select>
<select id="findRoleByUid" parameterType="int" resultType="int">
select role from postoruserrole where userid = #{uid} and classes = 1
</select>
<select id="findUserIdByDid" parameterType="int" resultType="int">
select userid from postoruserrole where 1 = 1 and did = #{did} and classes in (1,2) group by userid
</select>
<select id="findRoleAndDepositoryByCondition" parameterType="map" resultMap="depositoryAndrole">
select
<include refid="roleNameAnddepositoryName"/>
from userroleanddepository
where 1 = 1
<if test="depositoryId != null and depositoryId != ''">
and did = #{depositoryId}
</if>
<if test="userId != null and userId != ''">
and userId = #{userId}
</if>
<if test="classes != null and classes != ''">
and classes = #{classes}
</if>
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findRoleAndDepositoryCountByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from userroleanddepository
where 1 = 1
<if test="depositoryId != null and depositoryId != ''">
and did = #{depositoryId}
</if>
<if test="userId != null and userId != ''">
and userId = #{userId}
</if>
<if test="classes != null and classes != ''">
and classes = #{classes}
</if>
</select>
<select id="findRoleAndMaterialTypeByCondition" parameterType="map" resultMap="materialTypeAndRole">
select
<include refid="roleNameAndMaterialTypeName"/>
from materialtypeanduser
where 1 = 1
<if test="mtid != null and mtid != ''">
and mtid = #{mtid}
</if>
<if test="uid != null and uid != ''">
and uid = #{uid}
</if>
<if test="classes != null and classes != ''">
and classes = #{classes}
</if>
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findRoleAndMaterialTypeCountByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from materialtypeanduser
where 1 = 1
<if test="mtid != null and mtid != ''">
and mtid = #{mtid}
</if>
<if test="uid != null and uid != ''">
and uid = #{uid}
</if>
<if test="classes != null and classes != ''">
and classes = #{classes}
</if>
</select>
<select id="findRoleAndDepositoryById" parameterType="int" resultMap="depositoryAndrole">
select
<include refid="roleNameAnddepositoryName"/>
from userroleanddepository
where prid = #{id}
</select>
<select id="findRoleAndMaterialTypeById" parameterType="int" resultMap="materialTypeAndRole">
select
<include refid="roleNameAndMaterialTypeName"/>
from materialtypeanduser
where id = #{id}
</select>
<delete id="deleteRoleAndDepositoryById" parameterType="int">
delete from postoruserrole WHERE id = #{id}
</delete>
<delete id="deleteRoleAndMaterialTypeById" parameterType="int">
delete from mtanduserrole WHERE id = #{id}
</delete>
</mapper>

332
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/SplitUnitMapper.xml

@ -0,0 +1,332 @@
<?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">
<!-- user -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.SplitUnitMapper">
<!-- 字段映射(权限) -->
<!-- 权限映射-->
<resultMap id="splitInfoMap" type="com.dreamchaser.depository_manage.entity.SplitInfo">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="mid" property="mid" jdbcType="INTEGER" />
<result column="quantity" property="quantity" jdbcType="INTEGER" />
<result column="parentId" property="parentId" jdbcType="INTEGER" />
<result column="state" property="state" jdbcType="INTEGER" />
<result column="oldUnit" property="oldUnit" jdbcType="VARCHAR" />
<result column="newUnit" property="newUnit" jdbcType="VARCHAR" />
</resultMap>
<resultMap id="splitInventoryMap" type="com.dreamchaser.depository_manage.entity.SplitInventory">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="iid" property="iid" jdbcType="INTEGER"/>
<result column="sid" property="sid" jdbcType="INTEGER"/>
<result column="outQuantity" property="outQuantity" jdbcType="INTEGER"/>
<result column="inQuantity" property="inQuantity" jdbcType="INTEGER"/>
<result column="saveQuantity" property="saveQuantity" jdbcType="INTEGER"/>
</resultMap>
<resultMap id="splitInfoPMap" type="com.dreamchaser.depository_manage.pojo.SplitInfoP">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="mid" property="mid" jdbcType="INTEGER" />
<result column="quantity" property="quantity" jdbcType="INTEGER" />
<result column="sparentId" property="sparentId" jdbcType="INTEGER" />
<result column="sstate" property="sstate" jdbcType="INTEGER" />
<result column="mstate" property="mstate" jdbcType="INTEGER" />
<result column="oldUnit" property="oldUnit" jdbcType="VARCHAR" />
<result column="newUnit" property="newUnit" jdbcType="VARCHAR" />
<result column="version" property="version" jdbcType="VARCHAR" />
<result column="texture" property="texture" jdbcType="VARCHAR" />
<result column="mcode" property="mcode" jdbcType="VARCHAR" />
<result column="mname" property="mname" jdbcType="VARCHAR" />
<result column="typeName" property="typeName" jdbcType="VARCHAR" />
<result column="shelfLife" property="shelfLife" jdbcType="INTEGER"/>
<result column="productionPlace" property="productionPlace" jdbcType="VARCHAR"/>
<result column="brand" property="brand" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
</resultMap>
<sql id="splitInfoAllColumns">
s.id,s.mid,s.oldUnit,s.newUnit,s.quantity,s.parentId,s.state
</sql>
<sql id="splitInventoryAllColumns">
si.id,si.iid,si.sid,si.outQuantity,si.inQuantity,si.saveQuantity
</sql>
<sql id="splitInfoPAllColumns">
id,mid,oldUnit,newUnit,quantity,sparentId,sstate,shelfLife,productionPlace,brand,remark,mname,typeName,mcode,mstate,version,texture
</sql>
<select id="findSplitInfoByMidAndUnit" parameterType="map" resultMap="splitInfoMap">
select
<include refid="splitInfoAllColumns"/>
from `split` s
where 1 = 1
<if test="mid != null and mid != ''">
and s.mid = #{mid}
</if>
<if test="oldUnit != null and oldUnit != ''">
and s.oldUnit = #{oldUnit}
</if>
<if test="newUnit != null and newUnit != ''">
and s.newUnit = #{newUnit}
</if>
</select>
<select id="findSplitInfoById" parameterType="int" resultMap="splitInfoMap">
select
<include refid="splitInfoAllColumns"/>
from `split` s
where s.id = #{id}
</select>
<select id="findSplitInfoByMid" parameterType="int" resultMap="splitInfoMap">
select
<include refid="splitInfoAllColumns"/>
from `split` s
where s.mid = #{mid} and s.state = 1
</select>
<select id="findSplitInventoryByIidAndSid" parameterType="map" resultMap="splitInventoryMap">
select
<include refid="splitInventoryAllColumns"/>
from `split_inventory` si
where 1 = 1
<if test="iid != null ">
and si.iid = #{iid}
</if>
<if test="sid != null ">
and si.sid = #{sid}
</if>
</select>
<select id="findSplitInventoryByIidAndSids" parameterType="map" resultMap="splitInventoryMap">
select
<include refid="splitInventoryAllColumns"/>
from `split_inventory` si
where 1 = 1
<if test="iid != null ">
and si.iid = #{iid}
</if>
and si.sid in
<foreach collection="list" index="index" item="sid" open="(" separator="," close=")">
#{sid}
</foreach>
</select>
<select id="findSplitInventoryBySid" parameterType="int" resultMap="splitInventoryMap">
select
<include refid="splitInventoryAllColumns"/>
from `split_inventory` si
where si.sid = #{sid}
</select>
<select id="findSplitInventoryByIid" parameterType="int" resultMap="splitInventoryMap">
select
<include refid="splitInventoryAllColumns"/>
from `split_inventory` si
where si.iid = #{Iid}
</select>
<update id="updateSplitInfo">
update `split`
<set>
<if test="mid != null and mid != ''">
mid = #{mid},
</if>
<if test="oldUnit != null and oldUnit != ''">
oldUnit = #{oldUnit},
</if>
<if test="newUnit != null and newUnit != ''">
newUnit = #{newUnit},
</if>
<if test="quantity != null and quantity != ''">
quantity = #{quantity},
</if>
<if test="parentId != null and parentId != ''">
parentId = #{parentId},
</if>
<if test="state != null and state != ''">
state = #{state}
</if>
</set>
where id = #{id}
</update>
<update id="updateSplitInventory">
update `split_inventory`
<set>
<if test="iid != null and iid != ''">
iid = #{iid},
</if>
<if test="sid != null and sid != ''">
sid = #{sid},
</if>
<if test="outQuantity != null">
outQuantity = #{outQuantity},
</if>
<if test="inQuantity != null">
inQuantity = #{inQuantity},
</if>
<if test="saveQuantity != null">
saveQuantity = #{saveQuantity},
</if>
</set>
where id = #{id}
</update>
<insert id="addSplitInfo" parameterType="map" useGeneratedKeys="true" keyProperty="id">
INSERT INTO `split` (
id, mid, oldUnit,newUnit,quantity,parentId,state
) VALUES (
#{id},
#{mid},
#{oldUnit},
#{newUnit},
#{quantity},
#{parentId},
#{state}
)
</insert>
<insert id="addSplitInventory" parameterType="map" useGeneratedKeys="true" keyProperty="id">
INSERT INTO `split_inventory` (
id, iid, sid,outQuantity,inQuantity,saveQuantity
) VALUES (
#{id},
#{iid},
#{sid},
#{outQuantity},
#{inQuantity},
#{saveQuantity}
)
</insert>
<delete id="delSplitInfoById" parameterType="int">
delete from `split` WHERE id = #{id}
</delete>
<delete id="delSplitInfoByIds" parameterType="int">
delete from `split`
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="delSplitInventoryById" parameterType="int">
delete from `split_inventory` WHERE id = #{id}
</delete>
<delete id="delSplitInventoryByIds" parameterType="int">
delete from `split_inventory`
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="findSplitInfoPById" parameterType="int" resultMap="splitInfoPMap">
select
<include refid="splitInfoPAllColumns"/>
from findsplitInfo
where id = #{id}
</select>
<select id="findSplitInfoPByCondition" parameterType="map" resultMap="splitInfoPMap">
select
<include refid="splitInfoPAllColumns"/>
from findsplitInfo
where 1 = 1
<if test="mname != null and mname != ''">
and mname like concat('%',#{mname},'%')
</if>
<if test="oldUnit != null and oldUnit != ''">
and oldUnit like concat('%',#{oldUnit},'%')
</if>
<if test="newUnit != null and newUnit != ''">
and newUnit like concat('%',#{newUnit},'%')
</if>
<if test="parent != null and parent != ''">
and sparent = #{parent}
</if>
<if test="mid != null and mid != ''">
and mid = #{mid}
</if>
<if test="typeName != null and typeName != ''">
and typeName like concat('%',#{typeName},'%')
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="texture != null and texture != ''">
and texture = #{texture}
</if>
<if test="mstate != null and mstate != ''">
and mstate = #{mstate}
</if>
<if test="sstate != null and sstate != ''">
and sstate = #{sstate}
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findSplitInfoPCountByCondition" parameterType="map" resultType="int">
select
count(*)
from findsplitInfo
where 1 = 1
<if test="mname != null and mname != ''">
and mname like concat('%',#{mname},'%')
</if>
<if test="oldUnit != null and oldUnit != ''">
and oldUnit like concat('%',#{oldUnit},'%')
</if>
<if test="newUnit != null and newUnit != ''">
and newUnit like concat('%',#{newUnit},'%')
</if>
<if test="parent != null and parent != ''">
and sparent = #{parent}
</if>
<if test="mid != null and mid != ''">
and mid = #{mid}
</if>
<if test="typeName != null and typeName != ''">
and typeName like concat('%',#{typeName},'%')
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="texture != null and texture != ''">
and texture = #{texture}
</if>
<if test="mstate != null and mstate != ''">
and mstate = #{mstate}
</if>
<if test="sstate != null and sstate != ''">
and sstate = #{sstate}
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
</select>
<select id="findSplitInfoByParentId" parameterType="int" resultMap="splitInfoMap">
select
<include refid="splitInfoAllColumns"/>
from `split` s
where s.parentId = #{parentId}
</select>
</mapper>

338
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/StockTakingMapper.xml

@ -0,0 +1,338 @@
<?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">
<!-- notice -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.StockTakingMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="StockTakingMap" type="com.dreamchaser.depository_manage.entity.StockTaking">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="code" property="code" jdbcType="VARCHAR" />
<result column="depositoryId" property="depositoryId" jdbcType="INTEGER" />
<result column="state" property="state" jdbcType="INTEGER" />
<result column="departmentManagerState" property="departmentManagerState" jdbcType="INTEGER" />
<result column="createTime" property="createTime" jdbcType="INTEGER" />
<result column="completeTime" property="completeTime" jdbcType="INTEGER" />
<result column="reviewTime" property="reviewTime" jdbcType="INTEGER" />
<result column="originator" property="originator" jdbcType="INTEGER" />
<result column="departmentManager" property="departmentManager" jdbcType="VARCHAR" />
<result column="auditOpinion" property="auditOpinion" jdbcType="VARCHAR" />
</resultMap>
<resultMap id="StockTakingChildMap" type="com.dreamchaser.depository_manage.pojo.StockTakingChildP">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="mid" property="mid" jdbcType="INTEGER" />
<result column="oldInventory" property="oldInventory" jdbcType="INTEGER" />
<result column="newInventory" property="newInventory" jdbcType="INTEGER" />
<result column="inventory" property="inventory" jdbcType="INTEGER" />
<result column="mainId" property="mainId" jdbcType="INTEGER" />
<result column="takingResult" property="takingResult" jdbcType="VARCHAR" />
<result column="mtexture" property="mtexture" jdbcType="VARCHAR" />
<result column="mversion" property="mversion" jdbcType="VARCHAR" />
<result column="munit" property="munit" jdbcType="VARCHAR" />
<result column="stcUnit" property="unit" jdbcType="VARCHAR" />
<result column="tname" property="tname" jdbcType="VARCHAR" />
<result column="mcode" property="mcode" jdbcType="VARCHAR" />
<result column="mname" property="mname" jdbcType="VARCHAR" />
<result column="mtId" property="mtId" jdbcType="INTEGER" />
<result column="pid" property="pid" jdbcType="INTEGER" />
<result column="producedDate" property="producedDate" jdbcType="INTEGER" />
</resultMap>
<!-- 表查询字段 -->
<sql id="StockTakingAllColumns">
st.id,st.code,st.depositoryId,st.departmentManager,st.state,st.createTime,st.originator,st.completeTime,st.reviewTime,st.auditOpinion,st.departmentManagerState
</sql>
<sql id="StockTakingChildPAllColumns">
id,mid,oldInventory,newInventory,inventory,mainId,takingResult,mname,mtId,tname,mcode,mversion,munit,mtexture,producedDate,stcUnit,pid
</sql>
<!-- 插入主表-->
<insert id="insertStockTaking" useGeneratedKeys="true" keyProperty="id">
INSERT INTO stocktaking (id,code,depositoryId,departmentManager,state,createTime,originator,departmentManagerState)
values (
#{id},
#{code},
#{depositoryId},
#{departmentManager},
#{state},
#{createTime},
#{originator},
#{departmentManagerState}
)
</insert>
<!-- 插入子表-->
<insert id="insertStockTakingChild" useGeneratedKeys="true" keyProperty="id">
INSERT INTO stocktakingchild (id,mid,oldInventory,newInventory,takingResult,inventory,mainId,producedDate,unit,pid)
values (
#{id},#{mid},#{oldInventory},#{newInventory},#{takingResult},#{inventory},#{mainId},#{producedDate},#{unit},#{placeId}
)
</insert>
<delete id="deleteStockTakingChild" parameterType="int">
delete from stocktakingchild where id = #{id}
</delete>
<delete id="deleteStockTakingChilds" parameterType="list">
delete from stocktakingchild
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteStockTaking" parameterType="int">
delete from stocktaking where id = #{id}
</delete>
<delete id="deleteStockTakings" parameterType="list">
delete from stocktaking
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<update id="updateStockTaking">
update stocktaking
<set>
<if test="code != null and code != ''">
code = #{code},
</if>
<if test="depositoryId != null">
depositoryId = #{depositoryId},
</if>
<if test="departmentManager != null and departmentManager != ''">
departmentManager = #{departmentManager},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="departmentManagerState != null and departmentManagerState != ''">
departmentManagerState = #{departmentManagerState},
</if>
<if test="createTime != null and createTime != ''">
createTime = #{createTime},
</if>
<if test="originator != null and originator!=''">
originator = #{originator},
</if>
<if test="auditOpinion != null">
auditOpinion = #{auditOpinion},
</if>
<if test="completeTime != null and completeTime != ''">
completeTime = #{completeTime},
</if>
<if test="reviewTime != null and reviewTime != ''">
reviewTime = #{reviewTime}
</if>
</set>
where id = #{id}
</update>
<update id="updateStockTakingChild">
update stocktakingchild
<set>
<if test="mid != null and mid != ''">
mid = #{mid},
</if>
<if test="oldInventory != null">
oldInventory = #{oldInventory},
</if>
<if test="newInventory != null">
newInventory = #{newInventory},
</if>
<if test="takingResult != null and takingResult != ''">
takingResult = #{takingResult},
</if>
<if test="inventory != null">
inventory = #{inventory},
</if>
<if test="mainId != null and mainId != ''">
mainId = #{mainId},
</if>
<if test="producedDate != null and producedDate != ''">
producedDate = #{producedDate},
</if>
<if test="placeId != null">
pid = #{placeId},
</if>
<if test="unit != null and unit != ''">
unit = #{unit}
</if>
</set>
where id = #{id}
</update>
<select id="selectStockTakingChildByMainId" parameterType="int" resultMap="StockTakingChildMap">
select
<include refid="StockTakingChildPAllColumns"/>
from stocktakingchildinfo
where mainId = #{mainId}
</select>
<select id="selectStockTakingChildByIds" parameterType="list" resultMap="StockTakingChildMap">
select
<include refid="StockTakingChildPAllColumns"/>
from stocktakingchildinfo
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="selectStockTakingByCondition" parameterType="map" resultMap="StockTakingMap">
select
<include refid="StockTakingAllColumns"/>
from stocktaking st
where 1 = 1
<if test="code != null and code != ''">
and st.code LIKE CONCAT('%', #{code}, '%')
</if>
<if test="depositoryId != null and depositoryId != ''">
and st.depositoryId = #{depositoryId}
</if>
<if test="departmentManagerState != null and departmentManagerState != ''">
and st.departmentManagerState = #{departmentManagerState}
</if>
<if test="departmentManager != null and departmentManager != ''">
and FIND_IN_SET(#{departmentManager},st.departmentManager) != 0
</if>
<if test="originator != null and originator!=''">
and st.originator = #{originator}
</if>
</select>
<select id="selectStockTakingChildPByCondition" parameterType="map" resultMap="StockTakingChildMap">
select
<include refid="StockTakingChildPAllColumns"/>
from stocktakingchildinfo
where 1 = 1
<if test="mid != null and mid != ''">
and mid = #{mid}
</if>
<if test="oldInventory != null">
and oldInventory = #{oldInventory}
</if>
<if test="newInventory != null">
and newInventory = #{newInventory}
</if>
<if test="placeId != null">
and pid = #{placeId}
</if>
<if test="takingResult != null and takingResult != ''">
and takingResult = #{takingResult}
</if>
<if test="inventory != null">
and inventory = #{inventory}
</if>
<if test="mainId != null and mainId != ''">
and mainId = #{mainId}
</if>
<if test="mname != null and mname != ''">
and mname like CONCAT('%',#{mname},'%')
</if>
<if test="mtId != null">
and mtId = #{mtId}
</if>
<if test="mcode != null and mcode != ''">
and mcode = #{mcode}
</if>
<if test="mversion != null and mversion != ''">
and mversion = #{mversion}
</if>
<if test="munit != null and munit != ''">
and munit = #{munit}
</if>
<if test="mtexture != null and mtexture != ''">
and mtexture = #{mtexture}
</if>
<if test="producedDate != null">
and producedDate = #{producedDate}
</if>
<if test="unit != null and unit !=''">
and unit = #{unit}
</if>
</select>
<select id="selectStockTakingById" resultMap="StockTakingMap">
select
<include refid="StockTakingAllColumns"/>
from stocktaking st
where st.id = #{id}
</select>
<select id="selectStockTakingChildPById" resultMap="StockTakingChildMap">
select
<include refid="StockTakingChildPAllColumns"/>
from stocktakingchildinfo
where id = #{id}
</select>
<select id="findMyTask" parameterType="map" resultMap="StockTakingMap">
select
<include refid="StockTakingAllColumns"/>
from stocktaking st
where 1 = 1
<if test='isDone == 0'>
and (state = 3 and FIND_IN_SET(#{departmentHead},st.departmentManager) != 0 )
</if>
<if test='isDone == 1'>
and (state != 3 and FIND_IN_SET(#{departmentHead},st.departmentManager) != 0 )
</if>
ORDER BY st.createTime desc
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findMyTaskCount" parameterType="map" resultType="int">
SELECT
count(*)
from stocktaking st
where 1 = 1
<if test='isDone == 0'>
and (state = 3 and departmentManagerState = 3 and FIND_IN_SET(#{departmentHead},st.departmentManager) != 0 )
</if>
<if test='isDone == 1'>
and (state != 3 and departmentManagerState != 3 and FIND_IN_SET(#{departmentHead},st.departmentManager) != 0 )
</if>
</select>
<select id="findMyApply" parameterType="map" resultMap="StockTakingMap">
select
<include refid="StockTakingAllColumns"/>
from stocktaking st
where 1 = 1
and originator = #{userId}
ORDER BY st.createTime desc
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<select id="findMyApplyCount" parameterType="map" resultType="int">
SELECT
count(*)
from stocktaking st
where 1 = 1
and originator = #{userId}
</select>
</mapper>

153
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/TransferRecordMapper.xml

@ -0,0 +1,153 @@
<?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">
<!-- transfer_record -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.TransferRecordMapper">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="transferRecordMap" type="com.dreamchaser.depository_manage.entity.TransferRecord">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="from_id" property="fromId" jdbcType="INTEGER" />
<result column="to_id" property="toId" jdbcType="INTEGER" />
<result column="mid" property="mid" jdbcType="INTEGER" />
<result column="applicantTime" property="applicantTime" jdbcType="INTEGER" />
<result column="applicantId" property="applicantId" jdbcType="INTEGER" />
<result column="from_place_id" property="fromPlaceId" jdbcType="INTEGER" />
<result column="to_place_id" property="toPlaceId" jdbcType="INTEGER" />
</resultMap>
<!-- 表查询字段 -->
<sql id="allColumns">
tr.id, tr.from_id, tr.to_id,tr.mid,tr.applicantTime,tr.applicantId,tr.from_place_id,tr.to_place_id
</sql>
<!-- 查询所有
<select id="findTransferRecordAll" resultMap="transferRecordMap">
SELECT
<include refid="allColumns" />
FROM transfer_record tr
</select>-->
<!-- 根据条件参数查询列表-->
<select id="findTransferRecordByCondition" resultMap="transferRecordMap" parameterType="map">
SELECT
<include refid="allColumns" />
FROM transfer_record tr WHERE 1 = 1
<if test="fromId != null">
AND tr.from_id = #{fromId}
</if>
<if test="toId != null">
AND tr.to_id = #{toId}
</if>
<if test="mid != null">
and tr.mid = #{mid}
</if>
<if test="applicantTime != null">
and tr.applicantTime = #{applicantTime}
</if>
<if test="applicantId != null">
and tr.applicantId = #{applicantId}
</if>
<if test="fromPlaceId != null">
and tr.from_place_id = #{fromPlaceId}
</if>
<if test="toPlaceId != null">
and tr.to_place_id = #{toPlaceId}
</if>
</select>
<!-- 根据主键查询信息
<select id="findTransferRecordByIds" resultMap="transferRecordMap" parameterType="list">
SELECT
<include refid="allColumns" />
FROM transfer_record tr WHERE tr.id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>-->
<select id="findTransferRecordById" resultMap="transferRecordMap" parameterType="int">
SELECT
<include refid="allColumns" />
FROM transfer_record tr WHERE tr.id = #{id}
</select>
<!-- 新增信息 -->
<insert id="addTransferRecord" parameterType="map" useGeneratedKeys="true" keyProperty="id">
INSERT INTO transfer_record (
id, from_id, to_id,quantity,mid,applicantTime,applicantId,from_place_id,to_place_id
) VALUES (
#{id},
#{fromId},
#{toId},
#{quantity},
#{mid},
#{applicantTime},
#{applicantId},
#{fromPlaceId},
#{toPlaceId}
)
</insert>
<!-- 批量新增信息
<insert id="addTransferRecords" parameterType="list">
INSERT INTO transfer_record (
id, from_id, to_id
) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(
#{item.id},
#{item.fromId},
#{item.toId}
)
</foreach>
</insert>-->
<!-- 修改信息
<update id="updateTransferRecord">
UPDATE transfer_record
<set>
<if test="fromId != null">
from_id = #{fromId},
</if>
<if test="toId != null">
to_id = #{toId}
</if>
</set>
WHERE id = #{id}
</update>-->
<!-- 批量修改信息
<update id="updateTransferRecords" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE transfer_record
<set>
<if test="item.fromId != null">
from_id = #{item.fromId},
</if>
<if test="item.toId != null">
to_id = #{item.toId}
</if>
</set>
WHERE id = #{item.id}
</foreach>
</update>-->
<!-- 根据主键删除
<delete id="deleteTransferRecordById" parameterType="int">
DELETE FROM transfer_record WHERE id = #{id}
</delete>-->
<!-- 根据主键批量删除
<delete id="deleteTransferRecordByIds" parameterType="list">
DELETE FROM transfer_record WHERE id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>-->
</mapper>

381
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/UserMapper.xml

@ -0,0 +1,381 @@
<?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">
<!-- user -->
<mapper namespace="com.dreamchaser.depository_manage.mapper.UserMapper">
<!-- 字段映射 -->
<resultMap id="userMap" type="com.dreamchaser.depository_manage.entity.User">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="uname" property="uname" jdbcType="VARCHAR" />
<result column="authority" property="authority" jdbcType="VARCHAR" />
<result column="pwd" property="pwd" jdbcType="VARCHAR" />
<result column="sex" property="sex" jdbcType="VARCHAR" />
<result column="depository_id" property="depositoryId" jdbcType="INTEGER" />
<result column="entry_date" property="entryDate" jdbcType="TIMESTAMP" />
<result column="email" property="email" jdbcType="VARCHAR" />
<result column="phone" property="phone" jdbcType="VARCHAR" />
<result column="state" property="state" javaType="INTEGER"/>
</resultMap>
<!-- 字段映射(包括角色名)-->
<resultMap id="userMapWithRoleName" type="com.dreamchaser.depository_manage.entity.User">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="state" property="state" javaType="INTEGER"/>
<result column="uname" property="uname" jdbcType="VARCHAR" />
<result column="authority" property="authority" jdbcType="VARCHAR" />
<result column="pwd" property="pwd" jdbcType="VARCHAR" />
<result column="sex" property="sex" jdbcType="VARCHAR" />
<result column="depository_id" property="depositoryId" jdbcType="INTEGER" />
<result column="entry_date" property="entryDate" jdbcType="TIMESTAMP" />
<result column="email" property="email" jdbcType="VARCHAR" />
<result column="phone" property="phone" jdbcType="VARCHAR" />
<association property="role" javaType="com.dreamchaser.depository_manage.entity.Role">
<id property="id" column="authority"/>
<result property="name" column="name"/>
</association>
</resultMap>
<!-- 表查询字段(不敏感信息) -->
<sql id="noSensitiveColumns">
u.id, u.uname, u.sex, u.entry_date
</sql>
<!-- 表查询字段 -->
<sql id="allColumns">
u.id, u.uname, u.authority, u.pwd, u.sex, u.depository_id, u.entry_date, u.email,
u.phone,u.state
</sql>
<sql id="ColumnsAndRoleName">
u.id, u.uname,u.authority, u.pwd, u.sex, u.depository_id, u.entry_date, u.email,
u.phone,u.state
</sql>
<!-- This code was generated by TableGo tools, mark 2 end. -->
<!-- 查询该表的行数 -->
<select id="findCount" resultType="integer">
SELECT
count(*)
FROM user u
</select>
<!-- 根据条件查询数据的数量 -->
<select id="findCountByCondition" resultType="integer" parameterType="map">
SELECT
count(*)
FROM user u WHERE 1 = 1
<if test="uname != null and uname != ''">
AND u.uname LIKE CONCAT('%', #{uname}, '%')
</if>
<if test="authority != null and authority != ''">
AND u.authority LIKE CONCAT('%', #{authority}, '%')
</if>
<if test="pwd != null and pwd != ''">
AND u.pwd LIKE CONCAT('%', #{pwd}, '%')
</if>
<if test="sex != null and sex != ''">
AND u.sex LIKE CONCAT('%', #{sex}, '%')
</if>
<if test="depositoryId != null">
AND u.depository_id = #{depositoryId}
</if>
<if test="entryDate != null">
AND u.entry_date = #{entryDate}
</if>
<if test="email != null and email != ''">
AND u.email LIKE CONCAT('%', #{email}, '%')
</if>
<if test="phone != null and phone != ''">
AND u.phone LIKE CONCAT('%', #{phone}, '%')
</if>
<if test="state != null and state != ''">
and u.state = #{state}
</if>
and u.state != 3
</select>
<!-- 查询所有数据 -->
<!-- <select id="findUserAll" resultMap="userMap">
SELECT
<include refid="allColumns" />
FROM user u
</select>-->
<!-- 根据id查询数据列表 -->
<select id="findUserNameById" resultType="string" parameterType="int">
SELECT
u.uname
FROM user u WHERE u.id=#{id}
</select>
<!-- 根据email查询数据列表 -->
<select id="findUserByEmail" resultMap="userMap" parameterType="string">
SELECT
<include refid="allColumns" />
FROM user u WHERE u.email LIKE CONCAT('%', #{email}, '%')
</select>
<!-- 根据条件参数查询数据列表 -->
<select id="findUsersByCondition" resultMap="userMapWithRoleName" parameterType="map">
SELECT
<include refid="ColumnsAndRoleName" />
FROM user u WHERE 1 = 1
<if test="uname != null and uname != ''">
AND u.uname LIKE CONCAT('%', #{uname}, '%')
</if>
<if test="authority != null and authority != ''">
AND u.authority = #{authority}
</if>
<if test="pwd != null and pwd != ''">
AND u.pwd LIKE CONCAT('%', #{pwd}, '%')
</if>
<if test="sex != null and sex != ''">
AND u.sex LIKE CONCAT('%', #{sex}, '%')
</if>
<if test="depositoryId != null">
AND u.depository_id = #{depositoryId} or u.depository_id = 0
</if>
<if test="entryDate != null">
AND u.entry_date = #{entryDate}
</if>
<if test="email != null and email != ''">
AND u.email LIKE CONCAT('%', #{email}, '%')
</if>
<if test="phone != null and phone != ''">
AND u.phone LIKE CONCAT('%', #{phone}, '%')
</if>
<if test="state != null and state != ''">
And u.state = #{state}
</if>
and u.state != 3
<if test="begin != null and size != null">
LIMIT #{begin},#{size}
</if>
</select>
<!-- 根据条件参数查询数据列表 -->
<select id="findUserByCondition" resultMap="userMap" parameterType="map">
SELECT
<include refid="allColumns" />
FROM user u WHERE 1 = 1
<if test="uname != null and uname != ''">
AND u.uname LIKE CONCAT('%', #{uname}, '%')
</if>
<if test="authority != null and authority != ''">
AND u.authority LIKE CONCAT('%', #{authority}, '%')
</if>
<if test="pwd != null and pwd != ''">
AND u.pwd LIKE CONCAT('%', #{pwd}, '%')
</if>
<if test="sex != null and sex != ''">
AND u.sex LIKE CONCAT('%', #{sex}, '%')
</if>
<if test="depositoryId != null">
AND u.depository_id = #{depositoryId}
</if>
<if test="entryDate != null">
AND u.entry_date = #{entryDate}
</if>
<if test="email != null and email != ''">
AND u.email LIKE CONCAT('%', #{email}, '%')
</if>
<if test="phone != null and phone != ''">
AND u.phone LIKE CONCAT('%', #{phone}, '%')
</if>
<if test="state != null and state != ''">
and u.state = #{state}
</if>
and u.state != 3
</select>
<!-- 根据主键查询数据 -->
<select id="findUserById" resultMap="userMap" parameterType="integer">
SELECT
<include refid="allColumns" />
FROM user u WHERE u.id = #{id}
</select>
<!-- 根据主键查询数据
<select id="findUserByIds" resultMap="userMap" parameterType="list">
SELECT
<include refid="allColumns" />
FROM user u WHERE u.id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>-->
<!-- 插入数据 -->
<insert id="insertUser" parameterType="map">
INSERT INTO user (
id, uname, authority, pwd, sex, depository_id, entry_date, email,
phone
) VALUES (
#{id},
#{uname},
#{authority},
#{pwd},
#{sex},
#{depositoryId},
#{entryDate},
#{email},
#{phone}
)
</insert>
<!-- 批量插入数据
<insert id="insertUsers" parameterType="list">
INSERT INTO user (
id, uname, authority, pwd, sex, depository_id, entry_date, email,
phone
) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(
#{item.id},
#{item.uname},
#{item.authority},
#{item.pwd},
#{item.sex},
#{item.depositoryId},
#{item.entryDate},
#{item.email},
#{item.phone}
)
</foreach>
</insert>-->
<!-- 修改不敏感数据(这里由于并未对手机号进行验证所以这个也是非敏感信息可以给用户自己修改) -->
<update id="updateUserNoSensitive" parameterType="map">
UPDATE user
<set>
<if test='uname != null and uname!=""'>
uname = #{uname},
</if>
<if test='sex != null and sex!=""'>
sex = #{sex},
</if>
<if test="entryDate != null and entryDate!=''">
entry_date = #{entryDate},
</if>
<if test="phone != null and phone !=''">
phone = #{phone}
</if>
</set>
WHERE id = #{id}
</update>
<!-- 修改数据 -->
<update id="updateUser" parameterType="map">
UPDATE user
<set>
<if test='uname != null and uname!=""'>
uname = #{uname},
</if>
<if test='authority != null and authority!=""'>
authority = #{authority},
</if>
<if test="pwd != null and pwd!=''">
pwd = #{pwd},
</if>
<if test='sex != null and sex!=""'>
sex = #{sex},
</if>
<if test="depositoryId != null and depository!=''">
depository_id = #{depositoryId},
</if>
<if test="entryDate != null and entryDate!=''">
entry_date = #{entryDate},
</if>
<if test="email != null and email != ''">
email = #{email},
</if>
<if test="phone != null and phone !=''">
phone = #{phone},
</if>
<if test="state != null and state != ''">
state = #{state}
</if>
</set>
WHERE id = #{id}
</update>
<!-- 批量修改数据
<update id="updateUsers" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE user
<set>
<if test="item.uname != null">
uname = #{item.uname},
</if>
<if test="item.authority != null">
authority = #{item.authority},
</if>
<if test="item.pwd != null">
pwd = #{item.pwd},
</if>
<if test="item.sex != null">
sex = #{item.sex},
</if>
<if test="item.depositoryId != null">
depository_id = #{item.depositoryId},
</if>
<if test="item.entryDate != null">
entry_date = #{item.entryDate},
</if>
<if test="item.email != null">
email = #{item.email},
</if>
<if test="item.phone != null">
phone = #{item.phone}
</if>
</set>
WHERE id = #{item.id}
</foreach>
</update>-->
<!-- 根据主键删除数据 -->
<delete id="deleteUserById" parameterType="integer">
DELETE FROM user WHERE id = #{id}
</delete>
<!-- 根据主键批量删除数据 -->
<delete id="deleteUserByIds" parameterType="list">
DELETE FROM user WHERE id IN
<!-- 单参数时,List对象只能为list,数组对象只能为array,多参数用map时,collection参数才为KeyName -->
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<!--根据主键将状态修改为删除-->
<update id="changeUserStateToDeleteById" parameterType="integer">
update user
<set>
state = 3
</set>
where id = #{id}
</update>
<!--根据主键批量将状态修改为删除-->
<update id="changeUserStateToDeleteByIds" parameterType="list">
update user
<set>
state = 3
</set>
where id in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<update id="updateUserPasswordById" parameterType="map">
update user
<set>
pwd = #{new_password}
</set>
where id = #{id}
</update>
<select id="FindDepositoryByUserId" parameterType="int" resultType="string">
select dname from depositoryanduserbyport where uid = #{id}
</select>
</mapper>

143
target/depository/WEB-INF/classes/com/dreamchaser/depository_manage/mapper/standingBookMapper.xml

@ -0,0 +1,143 @@
<?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">
<!-- standing_book -->
<mapper namespace="mysql.standingBook">
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="standingBookMap" type="StandingBook">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="type" property="type" jdbcType="INTEGER" />
<result column="quantity" property="quantity" jdbcType="INTEGER" />
<result column="price" property="price" jdbcType="INTEGER" />
<result column="material_name" property="materialName" jdbcType="VARCHAR" />
</resultMap>
<!-- This code was generated by TableGo tools, mark 1 end. -->
<!-- This code was generated by TableGo tools, mark 2 begin. -->
<!-- 表查询字段 -->
<sql id="allColumns">
sb.id, sb.type, sb.quantity, sb.price, sb.material_name
</sql>
<!-- This code was generated by TableGo tools, mark 2 end. -->
<!-- 查询所有数据 -->
<select id="findStandingBookAll" resultMap="standingBookMap">
SELECT
<include refid="allColumns" />
FROM standing_book sb
</select>
<!-- 根据条件参数查询数据列表 -->
<select id="findStandingBookByCondition" resultMap="standingBookMap" parameterType="map">
SELECT
<include refid="allColumns" />
FROM standing_book sb WHERE 1 = 1
<if test="type != null">
AND sb.type = #{type}
</if>
<if test="quantity != null">
AND sb.quantity = #{quantity}
</if>
<if test="price != null">
AND sb.price = #{price}
</if>
<if test="materialName != null and materialName != ''">
AND sb.material_name LIKE CONCAT('%', #{materialName}, '%')
</if>
</select>
<!-- 根据主键查询数据 -->
<select id="findStandingBookByIds" resultMap="standingBookMap" parameterType="list">
SELECT
<include refid="allColumns" />
FROM standing_book sb WHERE sb.id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 插入数据 -->
<insert id="insertStandingBook" parameterType="map">
INSERT INTO standing_book (
id, type, quantity, price, material_name
) VALUES (
#{id},
#{type},
#{quantity},
#{price},
#{materialName}
)
</insert>
<!-- 批量插入数据 -->
<insert id="insertStandingBooks" parameterType="list">
INSERT INTO standing_book (
id, type, quantity, price, material_name
) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(
#{item.id},
#{item.type},
#{item.quantity},
#{item.price},
#{item.materialName}
)
</foreach>
</insert>
<!-- 修改数据 -->
<update id="updateStandingBook" parameterType="map">
UPDATE standing_book
<set>
<if test="type != null">
type = #{type},
</if>
<if test="quantity != null">
quantity = #{quantity},
</if>
<if test="price != null">
price = #{price},
</if>
<if test="materialName != null">
material_name = #{materialName}
</if>
</set>
WHERE id = #{id}
</update>
<!-- 批量修改数据 -->
<update id="updateStandingBooks" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE standing_book
<set>
<if test="item.type != null">
type = #{item.type},
</if>
<if test="item.quantity != null">
quantity = #{item.quantity},
</if>
<if test="item.price != null">
price = #{item.price},
</if>
<if test="item.materialName != null">
material_name = #{item.materialName}
</if>
</set>
WHERE id = #{item.id}
</foreach>
</update>
<!-- 根据主键删除数据 -->
<delete id="deleteStandingBookById" parameterType="int">
DELETE FROM standing_book WHERE id = #{id}
</delete>
<!-- 根据主键批量删除数据 -->
<delete id="deleteStandingBookByIds" parameterType="list">
DELETE FROM standing_book WHERE id IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

155
target/depository/WEB-INF/classes/logback-spring.xml

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- 应用名称-->
<property name="appName" value="Dreamchser"/>
<!-- 日志的存放目录-->
<!-- debug-->
<property name="DEBUG_LOG_FILE_NAME_PATTERN" value="logs/${appName}-debug.%d{yyyy-MM-dd}.%i.log"/>
<property name="INFO_LOG_FILE_NAME_PATTERN" value="logs/${appName}-info.%d{yyyy-MM-dd}.%i.log"/>
<property name="WARN_LOG_FILE_NAME_PATTERN" value="errlogs/${appName}-warn.%d{yyyy-MM-dd}.%i.log"/>
<property name="ERROR_LOG_FILE_NAME_PATTERN" value="errlogs/${appName}-error.%d{yyyy-MM-dd}.%i.log"/>
<!-- 日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%c){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<property name="FILE_LOG_PATTERN"
value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %c : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--输出到DEBUG文件-->
<appender name="debug_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${DEBUG_LOG_FILE_NAME_PATTERN}</fileNamePattern>
<!-- 日志保留天数 -->
<maxHistory>30</maxHistory>
<!-- 日志文件上限大小,达到指定大小后删除旧的日志文件 -->
<totalSizeCap>2GB</totalSizeCap>
<!-- 每个日志文件的最大值 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<!-- 此日志文件只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--输出到INFO文件-->
<appender name="info_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${INFO_LOG_FILE_NAME_PATTERN}</fileNamePattern>
<!-- 日志保留天数 -->
<maxHistory>7</maxHistory>
<!-- 日志文件上限大小,达到指定大小后删除旧的日志文件 -->
<totalSizeCap>1GB</totalSizeCap>
<!-- 每个日志文件的最大值 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<!-- 此日志文件只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--输出到WARN文件-->
<appender name="warn_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${WARN_LOG_FILE_NAME_PATTERN}</fileNamePattern>
<!-- 日志保留天数 -->
<maxHistory>30</maxHistory>
<!-- 日志文件上限大小,达到指定大小后删除旧的日志文件 -->
<totalSizeCap>1GB</totalSizeCap>
<!-- 每个日志文件的最大值 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<!-- 此日志文件只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--输出到ERROR文件-->
<appender name="error_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${ERROR_LOG_FILE_NAME_PATTERN}</fileNamePattern>
<!-- 日志保留天数 -->
<maxHistory>30</maxHistory>
<!-- 日志文件上限大小,达到指定大小后删除旧的日志文件 -->
<totalSizeCap>1GB</totalSizeCap>
<!-- 每个日志文件的最大值 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<!-- 此日志文件只记录error级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- region 根据不同的环境设置不同的日志输出级别 -->
<springProfile name="default,local,dev">
<root level="info">
<appender-ref ref="console"/>
</root>
<!-- <logger name="com.dreamchaser" level="debug"/>-->
</springProfile>
<springProfile name="prod,pre,test">
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="debug_file"/>
<appender-ref ref="info_file"/>
<appender-ref ref="warn_file"/>
<appender-ref ref="error_file"/>
</root>
<logger name="com.ibatis" level="DEBUG" />
<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" />
<logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" />
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" />
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="java.sql.PreparedStatement" level="DEBUG" />
<logger name="java.sql.ResultSet" level="DEBUG" />
<logger name="com.dreamchaser.dream.depository_manage.mapper" level="DEBUG" />
<!-- <logger name="com.dreamchaser.mapper" level="debug"/>-->
</springProfile>
<!-- endregion -->
</configuration>

26
target/depository/WEB-INF/classes/redisson-config.yml

@ -0,0 +1,26 @@
#Redisson配置
singleServerConfig:
address: "redis://127.0.0.1:6379"
clientName: null
database: 7 #选择使用哪个数据库0~15
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
reconnectionTimeout: 3000
failedAttempts: 3
subscriptionsPerConnection: 5
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 32
connectionPoolSize: 64
dnsMonitoringInterval: 5000
#dnsMonitoring: false
threads: 0
nettyThreads: 0
codec:
class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO"

4
target/depository/WEB-INF/classes/static/api/clear.json

@ -0,0 +1,4 @@
{
"code": 1,
"msg": "服务端清理缓存成功"
}

226
target/depository/WEB-INF/classes/static/api/init.json

@ -0,0 +1,226 @@
{
"homeInfo": {
"title": "首页",
"href": "/welcome"
},
"logoInfo": {
"title": "Repository",
"image": "static/images/logo.png",
"href": ""
},
"menuInfo": [
{
"title": "仓库信息概览",
"href": "/welcome",
"icon": "fa fa-tachometer",
"target": "_self",
"child": [
{
"title": "首页",
"href": "/welcome",
"icon": "fa fa-home",
"target": "_self"
}
]
},
{
"title": "仓库管理",
"icon": "fa fa-lemon-o",
"href": "",
"target": "_self",
"child": [
{
"title": "申请提交",
"icon": "fa fa-book",
"target": "_self",
"child": [
{
"title": "入库申请",
"href": "/application_in",
"icon": "layui-icon layui-icon-file-b",
"target": "_self"
},
{
"title": "出库申请",
"href": "/application_out",
"icon": "fa fa-file-text",
"target": "_self"
},
{
"title": "库存转移申请",
"href": "/application_transfer",
"icon": "fa fa-exchange",
"target": "_self"
}
]
},
{
"title": "入库管理",
"icon": "fa fa-mail-forward",
"target": "_self",
"child": [
{
"title": "入库查询",
"href": "/table_in",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "入库可视化",
"href": "/chart_in",
"icon": "fa fa-bar-chart",
"target": "_self"
},
{
"title": "入库可视化(测试)",
"href": "/chart_in_back",
"icon": "fa fa-bar-chart",
"target": "_self"
}
]
},
{
"title": "出库管理",
"icon": "fa fa-mail-reply",
"target": "_self",
"child": [
{
"title": "出库查询",
"href": "/table_out",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "出库可视化",
"href": "/chart_out",
"icon": "fa fa-pie-chart",
"target": "_self"
}
]
},
{
"title": "库存管理",
"icon": "fa fa-server",
"target": "_self",
"child": [
{
"title": "库存查询",
"href": "/table_stock",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "库存可视化",
"href": "/chart_stock",
"icon": "fa fa-area-chart",
"target": "_self"
}
]
},
{
"title": "仓库管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "创建仓库",
"href": "/depository_add",
"icon": "layui-icon layui-icon-template-1",
"target": "_self"
},
{
"title": "仓库查询",
"href": "/depository-out",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "物料种类管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "物料种类添加",
"href": "/materialType_add",
"icon": "layui-icon layui-icon-list",
"target": "_self"
},
{
"title": "物料种类查询",
"href": "/materialType_view",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "物料管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "创建物料",
"href": "/material_add",
"icon": "layui-icon layui-icon-template-1",
"target": "_self"
},
{
"title": "物料查询",
"href": "/material_out",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "我的任务",
"icon": "fa fa-tasks",
"target": "_self",
"href": "/my_task"
},
{
"title": "我的申请",
"href": "/my_apply",
"icon": "fa fa-paper-plane",
"target": "_self"
}
]
},
{
"title": "辅助管理",
"icon": "fa fa-slideshare",
"href": "",
"target": "_self",
"child": [
{
"title": "人员管理",
"href": "/table_user",
"icon": "fa fa-group",
"target": ""
},
{
"title": "公告发布",
"href": "/notice_edit",
"icon": "fa fa-superpowers",
"target": "_self"
}
]
},
{
"title": "个人中心",
"href": "pages/error.html",
"icon": "fa fa-superpowers",
"target": "_self",
"child": [
{
"title": "个人信息",
"href": "/account_look",
"icon": "layui-icon layui-icon-friends",
"target": ""
}
]
}
]
}

220
target/depository/WEB-INF/classes/static/api/init_checker.json

@ -0,0 +1,220 @@
{
"homeInfo": {
"title": "首页",
"href": "/welcome"
},
"logoInfo": {
"title": "Repository",
"image": "static/images/logo.png",
"href": ""
},
"menuInfo": [
{
"title": "仓库信息概览",
"href": "/welcome",
"icon": "fa fa-tachometer",
"target": "_self",
"child": [
{
"title": "首页",
"href": "/welcome",
"icon": "fa fa-home",
"target": "_self"
}
]
},
{
"title": "仓库管理",
"icon": "fa fa-lemon-o",
"href": "",
"target": "_self",
"child": [
{
"title": "申请提交",
"icon": "fa fa-book",
"target": "_self",
"child": [
{
"title": "入库申请",
"href": "/application_in",
"icon": "layui-icon layui-icon-file-b",
"target": "_self"
},
{
"title": "出库申请",
"href": "/application_out",
"icon": "fa fa-file-text",
"target": "_self"
},
{
"title": "库存转移申请",
"href": "application_transfer",
"icon": "fa fa-exchange",
"target": "_self"
}
]
},
{
"title": "入库管理",
"icon": "fa fa-mail-forward",
"target": "_self",
"child": [
{
"title": "入库查询",
"href": "/table_in",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "入库可视化",
"href": "/chart_in",
"icon": "fa fa-bar-chart",
"target": "_self"
},
{
"title": "入库可视化(测试)",
"href": "/chart_in_back",
"icon": "fa fa-bar-chart",
"target": "_self"
}
]
},
{
"title": "出库管理",
"icon": "fa fa-mail-reply",
"target": "_self",
"child": [
{
"title": "出库查询",
"href": "/table_out",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "出库可视化",
"href": "/chart_out",
"icon": "fa fa-pie-chart",
"target": "_self"
}
]
},
{
"title": "库存管理",
"icon": "fa fa-server",
"target": "_self",
"child": [
{
"title": "库存查询",
"href": "/table_stock",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "库存可视化",
"href": "/chart_stock",
"icon": "fa fa-area-chart",
"target": "_self"
}
]
},
{
"title": "仓库管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "创建仓库",
"href": "/depository_add",
"icon": "layui-icon layui-icon-template-1",
"target": "_self"
},
{
"title": "仓库查询",
"href": "/depository-out",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "物料种类管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "物料种类添加",
"href": "/materialType_add",
"icon": "layui-icon layui-icon-list",
"target": "_self"
},
{
"title": "物料种类查询",
"href": "/materialType_view",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "物料管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "创建物料",
"href": "/material_add",
"icon": "layui-icon layui-icon-template-1",
"target": "_self"
},
{
"title": "物料查询",
"href": "/material_out",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "我的任务",
"icon": "fa fa-tasks",
"target": "_self",
"href": "/my_task"
},
{
"title": "我的申请",
"href": "/my_apply",
"icon": "fa fa-paper-plane",
"target": "_self"
}
]
},
{
"title": "辅助管理",
"icon": "fa fa-slideshare",
"href": "",
"target": "_self",
"child": [
{
"title": "公告发布",
"href": "/notice_edit",
"icon": "fa fa-superpowers",
"target": "_self"
}
]
},
{
"title": "个人中心",
"href": "pages/error.html",
"icon": "fa fa-superpowers",
"target": "_self",
"child": [
{
"title": "个人信息",
"href": "/account_look",
"icon": "layui-icon layui-icon-friends",
"target": ""
}
]
}
]
}

226
target/depository/WEB-INF/classes/static/api/init_reviewer.json

@ -0,0 +1,226 @@
{
"homeInfo": {
"title": "首页",
"href": "/welcome"
},
"logoInfo": {
"title": "Repository",
"image": "static/images/logo.png",
"href": ""
},
"menuInfo": [
{
"title": "仓库信息概览",
"href": "/welcome",
"icon": "fa fa-tachometer",
"target": "_self",
"child": [
{
"title": "首页",
"href": "/welcome",
"icon": "fa fa-home",
"target": "_self"
}
]
},
{
"title": "仓库管理",
"icon": "fa fa-lemon-o",
"href": "",
"target": "_self",
"child": [
{
"title": "申请提交",
"icon": "fa fa-book",
"target": "_self",
"child": [
{
"title": "入库申请",
"href": "/application_in",
"icon": "layui-icon layui-icon-file-b",
"target": "_self"
},
{
"title": "出库申请",
"href": "/application_out",
"icon": "fa fa-file-text",
"target": "_self"
},
{
"title": "库存转移申请",
"href": "application_transfer",
"icon": "fa fa-exchange",
"target": "_self"
}
]
},
{
"title": "入库管理",
"icon": "fa fa-mail-forward",
"target": "_self",
"child": [
{
"title": "入库查询",
"href": "/table_in",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "入库可视化",
"href": "/chart_in",
"icon": "fa fa-bar-chart",
"target": "_self"
},
{
"title": "入库可视化(测试)",
"href": "/chart_in_back",
"icon": "fa fa-bar-chart",
"target": "_self"
}
]
},
{
"title": "出库管理",
"icon": "fa fa-mail-reply",
"target": "_self",
"child": [
{
"title": "出库查询",
"href": "/table_out",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "出库可视化",
"href": "/chart_out",
"icon": "fa fa-pie-chart",
"target": "_self"
}
]
},
{
"title": "库存管理",
"icon": "fa fa-server",
"target": "_self",
"child": [
{
"title": "库存查询",
"href": "/table_stock",
"icon": "fa fa-th-list",
"target": "_self"
},
{
"title": "库存可视化",
"href": "/chart_stock",
"icon": "fa fa-area-chart",
"target": "_self"
}
]
},
{
"title": "仓库管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "创建仓库",
"href": "/depository_add",
"icon": "layui-icon layui-icon-template-1",
"target": "_self"
},
{
"title": "仓库查询",
"href": "/depository-out",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "物料种类管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "物料种类添加",
"href": "/materialType_add",
"icon": "layui-icon layui-icon-list",
"target": "_self"
},
{
"title": "物料种类查询",
"href": "/materialType_view",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "物料管理",
"icon": "fa fa-wrench",
"target": "_self",
"child": [
{
"title": "创建物料",
"href": "/material_add",
"icon": "layui-icon layui-icon-template-1",
"target": "_self"
},
{
"title": "物料查询",
"href": "/material_out",
"icon": "fa fa-th-list",
"target": "_self"
}
]
},
{
"title": "我的任务",
"icon": "fa fa-tasks",
"target": "_self",
"href": "/my_task"
},
{
"title": "我的申请",
"href": "/my_apply",
"icon": "fa fa-paper-plane",
"target": "_self"
}
]
},
{
"title": "辅助管理",
"icon": "fa fa-slideshare",
"href": "",
"target": "_self",
"child": [
{
"title": "人员管理",
"href": "/table_user",
"icon": "fa fa-group",
"target": ""
},
{
"title": "公告发布",
"href": "/notice_edit",
"icon": "fa fa-superpowers",
"target": "_self"
}
]
},
{
"title": "个人中心",
"href": "pages/error.html",
"icon": "fa fa-superpowers",
"target": "_self",
"child": [
{
"title": "个人信息",
"href": "/account_look",
"icon": "layui-icon layui-icon-friends",
"target": ""
}
]
}
]
}

100
target/depository/WEB-INF/classes/static/api/init_user.json

@ -0,0 +1,100 @@
{
"homeInfo": {
"title": "首页",
"href": "/welcome"
},
"logoInfo": {
"title": "Repository",
"image": "static/images/logo.png",
"href": ""
},
"menuInfo": [
{
"title": "仓库信息概览",
"href": "/welcome",
"icon": "fa fa-tachometer",
"target": "_self",
"child": [
{
"title": "首页",
"href": "/welcome",
"icon": "fa fa-home",
"target": "_self"
}
]
},
{
"title": "仓库管理",
"icon": "fa fa-lemon-o",
"href": "",
"target": "_self",
"child": [
{
"title": "申请提交",
"icon": "fa fa-book",
"target": "_self",
"child": [
{
"title": "入库申请",
"href": "/application_in",
"icon": "layui-icon layui-icon-file-b",
"target": "_self"
},
{
"title": "出库申请",
"href": "/application_out",
"icon": "fa fa-file-text",
"target": "_self"
},
{
"title": "库存转移申请",
"href": "application_transfer",
"icon": "fa fa-exchange",
"target": "_self"
}
]
},
{
"title": "我的任务",
"icon": "fa fa-tasks",
"target": "_self",
"href": "/my_task"
},
{
"title": "我的申请",
"href": "/my_apply",
"icon": "fa fa-paper-plane",
"target": "_self"
}
]
},
{
"title": "辅助管理",
"icon": "fa fa-slideshare",
"href": "",
"target": "_self",
"child": [
{
"title": "公告发布",
"href": "/notice_edit",
"icon": "fa fa-superpowers",
"target": "_self"
}
]
},
{
"title": "个人中心",
"href": "pages/error.html",
"icon": "fa fa-superpowers",
"target": "_self",
"child": [
{
"title": "个人信息",
"href": "/account_look",
"icon": "layui-icon layui-icon-friends",
"target": ""
}
]
}
]
}

254
target/depository/WEB-INF/classes/static/api/menus.json

@ -0,0 +1,254 @@
{
"code": 0,
"msg": "",
"count": 19,
"data": [
{
"authorityId": 1,
"authorityName": "系统管理",
"orderNumber": 1,
"menuUrl": null,
"menuIcon": "layui-icon-set",
"createTime": "2018/06/29 11:05:41",
"authority": null,
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 0,
"parentId": -1
},
{
"authorityId": 2,
"authorityName": "用户管理",
"orderNumber": 2,
"menuUrl": "system/user",
"menuIcon": null,
"createTime": "2018/06/29 11:05:41",
"authority": null,
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 0,
"parentId": 1
},
{
"authorityId": 3,
"authorityName": "查询用户",
"orderNumber": 3,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/07/21 13:54:16",
"authority": "user:view",
"checked": 0,
"updateTime": "2018/07/21 13:54:16",
"isMenu": 1,
"parentId": 2
},
{
"authorityId": 4,
"authorityName": "添加用户",
"orderNumber": 4,
"menuUrl": null,
"menuIcon": null,
"createTime": "2018/06/29 11:05:41",
"authority": "user:add",
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 1,
"parentId": 2
},
{
"authorityId": 5,
"authorityName": "修改用户",
"orderNumber": 5,
"menuUrl": null,
"menuIcon": null,
"createTime": "2018/06/29 11:05:41",
"authority": "user:edit",
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 1,
"parentId": 2
},
{
"authorityId": 6,
"authorityName": "删除用户",
"orderNumber": 6,
"menuUrl": null,
"menuIcon": null,
"createTime": "2018/06/29 11:05:41",
"authority": "user:delete",
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 1,
"parentId": 2
},
{
"authorityId": 7,
"authorityName": "角色管理",
"orderNumber": 7,
"menuUrl": "system/role",
"menuIcon": null,
"createTime": "2018/06/29 11:05:41",
"authority": null,
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 0,
"parentId": 1
},
{
"authorityId": 8,
"authorityName": "查询角色",
"orderNumber": 8,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/07/21 13:54:59",
"authority": "role:view",
"checked": 0,
"updateTime": "2018/07/21 13:54:58",
"isMenu": 1,
"parentId": 7
},
{
"authorityId": 9,
"authorityName": "添加角色",
"orderNumber": 9,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/06/29 11:05:41",
"authority": "role:add",
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 1,
"parentId": 7
},
{
"authorityId": 10,
"authorityName": "修改角色",
"orderNumber": 10,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/06/29 11:05:41",
"authority": "role:edit",
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 1,
"parentId": 7
},
{
"authorityId": 11,
"authorityName": "删除角色",
"orderNumber": 11,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/06/29 11:05:41",
"authority": "role:delete",
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 1,
"parentId": 7
},
{
"authorityId": 12,
"authorityName": "角色权限管理",
"orderNumber": 12,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/06/29 11:05:41",
"authority": "role:auth",
"checked": 0,
"updateTime": "2018/07/13 15:27:18",
"isMenu": 1,
"parentId": 7
},
{
"authorityId": 13,
"authorityName": "权限管理",
"orderNumber": 13,
"menuUrl": "system/authorities",
"menuIcon": null,
"createTime": "2018/06/29 11:05:41",
"authority": null,
"checked": 0,
"updateTime": "2018/07/13 15:45:13",
"isMenu": 0,
"parentId": 1
},
{
"authorityId": 14,
"authorityName": "查询权限",
"orderNumber": 14,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/07/21 13:55:57",
"authority": "authorities:view",
"checked": 0,
"updateTime": "2018/07/21 13:55:56",
"isMenu": 1,
"parentId": 13
},
{
"authorityId": 15,
"authorityName": "添加权限",
"orderNumber": 15,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/06/29 11:05:41",
"authority": "authorities:add",
"checked": 0,
"updateTime": "2018/06/29 11:05:41",
"isMenu": 1,
"parentId": 13
},
{
"authorityId": 16,
"authorityName": "修改权限",
"orderNumber": 16,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/07/13 09:13:42",
"authority": "authorities:edit",
"checked": 0,
"updateTime": "2018/07/13 09:13:42",
"isMenu": 1,
"parentId": 13
},
{
"authorityId": 17,
"authorityName": "删除权限",
"orderNumber": 17,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/06/29 11:05:41",
"authority": "authorities:delete",
"checked": 0,
"updateTime": "2018/06/29 11:05:41",
"isMenu": 1,
"parentId": 13
},
{
"authorityId": 18,
"authorityName": "登录日志",
"orderNumber": 18,
"menuUrl": "system/loginRecord",
"menuIcon": null,
"createTime": "2018/06/29 11:05:41",
"authority": null,
"checked": 0,
"updateTime": "2018/06/29 11:05:41",
"isMenu": 0,
"parentId": 1
},
{
"authorityId": 19,
"authorityName": "查询登录日志",
"orderNumber": 19,
"menuUrl": "",
"menuIcon": "",
"createTime": "2018/07/21 13:56:43",
"authority": "loginRecord:view",
"checked": 0,
"updateTime": "2018/07/21 13:56:43",
"isMenu": 1,
"parentId": 18
}
]
}

139
target/depository/WEB-INF/classes/static/api/table-in.json

@ -0,0 +1,139 @@
{
"code": 0,
"msg": "",
"count": 1000,
"data": [
{
"id": 10000,
"applicationId": 2001,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "无",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10001,
"applicationId": 3301,
"materialName": "麒麟980芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "已入库",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2021-10-06 10:05",
"reviewRemarks": "审核批准!",
"reviewTime": "2021-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准",
"checkerName": "李四",
"checkRemarks": "验收无误,入库!",
"checkTime": "2021-10-8 15:23"
},
{
"id": 10002,
"applicationId": 409,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 123,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 321,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 456,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 456,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 123,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
}
]
}

136
target/depository/WEB-INF/classes/static/api/table-out.json

@ -0,0 +1,136 @@
{
"code": 0,
"msg": "",
"count": 1000,
"data": [
{
"id": 10000,
"applicationId": 2001,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "无",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10001,
"applicationId": 3301,
"materialName": "麒麟980芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "已入库",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2021-10-06 10:05",
"reviewRemarks": "审核批准!",
"reviewTime": "2021-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10002,
"applicationId": 409,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 123,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 321,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 456,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 456,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "购入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
},
{
"id": 10000,
"applicationId": 123,
"materialName": "骁龙888芯片",
"depositoryName": "外芯仓库",
"quantity": "409",
"price": "205004109",
"type": "转入",
"state": "待审核",
"applicantName": "张三",
"reviewerName": "King",
"applyTime": "2020-10-06 10:05",
"reviewTime": "2020-10-07 11:12",
"depositoryId": 57,
"applyRemarks": "老板要求今天这批货得进库,请尽快批准"
}
]
}

95
target/depository/WEB-INF/classes/static/api/table-user.json

@ -0,0 +1,95 @@
{
"code": 0,
"msg": "",
"count": 1000,
"data": [
{
"id": 10000,
"uname": "张三",
"sex": "男",
"authority": "仓管员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "外芯仓库",
"entryDate": "2012-10-06",
"depositoryId": 1
},
{
"id": 10000,
"uname": "李四",
"sex": "男",
"authority": "仓管员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "义乌仓库a",
"entryDate": "2012-10-06",
"depositoryId": 1
},
{
"id": 10000,
"uname": "King",
"sex": "男",
"authority": "仓管员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "义乌仓库b",
"entryDate": "2012-10-06",
"depositoryId": 1
},
{
"id": 10000,
"uname": "张三",
"sex": "男",
"authority": "仓管员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "宁波仓库",
"entryDate": "2012-10-06",
"depositoryId": 1
},
{
"id": 10000,
"uname": "张三",
"sex": "男",
"authority": "仓管员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "宁波仓库",
"entryDate": "2012-10-06",
"depositoryId": 1
},
{
"id": 10000,
"uname": "boss",
"sex": "男",
"authority": "系统管理员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "all",
"entryDate": "2012-10-06",
"depositoryId": 1
},
{
"id": 10000,
"uname": "张三",
"sex": "男",
"authority": "仓管员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "外芯仓库",
"entryDate": "2012-10-06",
"depositoryId": 1
},
{
"id": 10000,
"uname": "张三",
"sex": "男",
"authority": "仓管员",
"phone": "4561348",
"email": "12345689@qq.com",
"depositoryName": "外芯仓库",
"entryDate": "2012-10-06",
"depositoryId": 1
}
]
}

87
target/depository/WEB-INF/classes/static/api/tableSelect.json

@ -0,0 +1,87 @@
{
"code": 0,
"msg": "",
"count": 16,
"data": [
{
"id": "001",
"username": "张玉林",
"sex": "女"
},
{
"id": "002",
"username": "刘晓军",
"sex": "男"
},
{
"id": "003",
"username": "张恒",
"sex": "男"
},
{
"id": "004",
"username": "朱一",
"sex": "男"
},
{
"id": "005",
"username": "刘佳能",
"sex": "女"
},
{
"id": "006",
"username": "晓梅",
"sex": "女"
},
{
"id": "007",
"username": "马冬梅",
"sex": "女"
},
{
"id": "008",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "009",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "010",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "011",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "012",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "013",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "014",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "015",
"username": "刘晓庆",
"sex": "女"
},
{
"id": "016",
"username": "刘晓庆",
"sex": "女"
}
]
}

225
target/depository/WEB-INF/classes/static/api/test.json

@ -0,0 +1,225 @@
{
"homeInfo": {
"title": "首页",
"href": "/welcome"
},
"logoInfo": {
"title": "Repository",
"image": "static/images/logo.png",
"href": ""
},
"menuInfo": [
{
"icon": "fa fa-home",
"href": "/welcome",
"title": "仓库信息概览",
"target": "_self",
"child": [
{
"icon": "fa fa-home",
"href": "/welcome",
"title": "首页",
"target": "_self",
"child": []
}
]
},
{
"icon": "layui-icon layui-icon-template-1",
"href": "/account_look",
"title": "个人中心",
"target": "_self",
"child": []
},
{
"icon": "fa fa-lemon-o",
"href": "",
"title": "仓库管理",
"target": "_self",
"child": [
{
"icon": "layui-icon layui-icon-template-1",
"href": "/my_task",
"title": "我的任务",
"target": "_self",
"child": []
},
{
"icon": "layui-icon layui-icon-template-1",
"href": "/my_apply",
"title": "我的申请",
"target": "_self",
"child": []
},
{
"icon": "fa fa-mail-forward",
"href": "",
"title": "申请提交",
"target": "_self",
"child": [
{
"icon": "layui-icon layui-icon-file-b",
"href": "/application_in",
"title": "入库申请",
"target": "_self"
},
{
"icon": "fa fa-file-text",
"href": "/application_out",
"title": "出库申请",
"target": "_self"
},
{
"icon": "fa fa-exchange",
"href": "/application_transfer",
"title": "库存转移申请",
"target": "_self"
}
]
},
{
"icon": "fa fa-mail-forward",
"href": "",
"title": "入库管理",
"target": "_self",
"child": [
{
"icon": "fa fa-th-list",
"href": "/table_in",
"title": "入库查询",
"target": "_self"
},
{
"icon": "fa fa-bar-chart",
"href": "/chart_in",
"title": "入库可视化",
"target": "_self"
}
]
},
{
"icon": "fa fa-mail-forward",
"href": "",
"title": "出库管理",
"target": "_self",
"child": [
{
"icon": "fa fa-th-list",
"href": "/table_out",
"title": "出库查询",
"target": "_self"
},
{
"icon": "fa fa-pie-chart",
"href": "/chart_out",
"title": "出库可视化",
"target": "_self"
}
]
},
{
"icon": "fa fa-mail-forward",
"href": "",
"title": "库存管理",
"target": "_self",
"child": [
{
"icon": "fa fa-th-list",
"href": "/table_stock",
"title": "库存查询",
"target": "_self"
},
{
"icon": "fa fa-area-chart",
"href": "/chart_stock",
"title": "库存可视化",
"target": "_self"
}
]
},
{
"icon": "fa fa-mail-forward",
"href": "",
"title": "仓库管理",
"target": "_self",
"child": [
{
"icon": "layui-icon layui-icon-template-1",
"href": "/depository_add",
"title": "创建仓库",
"target": "_self"
},
{
"icon": "fa fa-th-list",
"href": "/depository-out",
"title": "仓库查询",
"target": "_self"
}
]
},
{
"icon": "fa fa-mail-forward",
"href": "",
"title": "物料种类管理",
"target": "_self",
"child": [
{
"icon": "fa fa-th-list",
"href": "/materialType_add",
"title": "物料种类添加",
"target": "_self"
},
{
"icon": "layui-icon layui-icon-template-1",
"href": "/materialType_view",
"title": "物料种类查询",
"target": "_self"
}
]
},
{
"icon": "fa fa-mail-forward",
"href": "",
"title": "物料管理",
"target": "_self",
"child": [
{
"icon": "layui-icon layui-icon-template-1",
"href": "/material_add",
"title": "创建物料",
"target": "_self"
},
{
"icon": "layui-icon layui-icon-template-1",
"href": "/material_out",
"title": "物料查询",
"target": "_self"
}
]
}
]
},
{
"icon": "fa fa-slideshare",
"href": "",
"title": "辅助管理",
"target": "_self",
"child": [
{
"icon": "layui-icon layui-icon-template-1",
"href": "/table_user",
"title": "人员管理",
"target": "_self",
"child": []
},
{
"icon": "layui-icon layui-icon-template-1",
"href": "/notice_edit",
"title": "公告发布",
"target": "_self",
"child": []
}
]
}
]
}

10
target/depository/WEB-INF/classes/static/api/upload.json

@ -0,0 +1,10 @@
{
"code": 1,
"msg": "上传成功",
"data": {
"url": [
"../images/logo.png",
"../images/captcha.jpg"
]
}
}

15681
target/depository/WEB-INF/classes/static/css/JcPrinter/chalk_index.css

File diff suppressed because it is too large

BIN
target/depository/WEB-INF/classes/static/css/JcPrinter/fonts/element-icons.ttf

Binary file not shown.

BIN
target/depository/WEB-INF/classes/static/css/JcPrinter/fonts/element-icons.woff

Binary file not shown.

217
target/depository/WEB-INF/classes/static/css/JcPrinter/style.css

@ -0,0 +1,217 @@
body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background-color: #fff;
}
.container {
width: 900px;
height: auto;
margin: 0 auto;
}
.header {
display: flex;
align-items: center;
width: 100%;
height: 100px;
margin: 10px 0;
border: 1px solid gray;
}
.printer {
display: flex;
align-items: center;
margin-left: 10px;
}
.printer span {
display: block;
width: 120px;
}
.printer select {
width: 520px;
height: 26px;
}
.printer .reset {
width: 120px;
height: 24px;
margin-left: 10px;
line-height: 24px;
text-align: center;
border: 1px solid #a9a9a9;
}
.main {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.main-left {
width: 60%;
}
.send1{
width: 90%;
height: 30px;
margin: 10px ;
line-height: 30px;
text-align: center;
font-size: 16px;
/* border: 1px solid gray; */
/* border-radius: 5px; */
/* margin: 10px 10px; */
}
.flex-rows {
padding: 10px 0 10px 10px;
margin-bottom: 20px;
border: 1px solid gray;
}
.flex-rows p {
font-size: 16px;
}
.flex-rows .ex2 {
display: flex;
align-items: center;
height: 40px;
}
.function .ex2 span,
.upgrade .ex2 span {
display: block;
width: 120px;
font-size: 14px;
}
.parameter .ex2 span {
display: block;
width: 160px;
font-size: 14px;
}
.ex2 .right {
width: 500px;
}
.ex2 .diy-span-class{
display: flex;
justify-content: flex-start;
align-items: center;
}
.ex2 .diy-span-class span {
display: block;
width: 30px ;
margin-left: 6px;
font-size: 14px;
}
.ex2 .diy-span-class span:nth-child(1) {
margin-left: 0;
}
.headselect{
width: 500px;
}
.ex2 .right input[type='text'] {
width: 200px;
height: 24px;
}
.ex2 .right input[type='button'],
.ex2 .right input[type='number'],
.ex2 .right input[type='reset'],
.ex2 .right select {
width: 120px;
height: 24px;
}
.ex2 .diy-span-class input[type='number'] {
width: 60px;
height: 24px;
}
.ex2 .right input[type='number'] {
height: 22px;
}
.ex2 .right select,
.ex2 .right input[type='button'] {
height: 28px;
}
.ex2 .crc input[type='text'] {
width: 120px;
height: 24px;
}
.file-input {
display: flex;
align-items: center;
}
.select-file {
position: relative;
width: 120px;
height: 28px;
margin-left: 6px;
border: 1px solid #a9a9a9;
}
.select-file span {
width: 100%;
height: 100%;
line-height: 28px;
text-align: center;
background-color: #fff;
}
.select-file input {
opacity: 0;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
overflow: hidden;
}
.main-right {
width: 36%;
height: 860px;
margin-top: -20px;
border: 1px solid gray;
}
.main-right p {
padding-left: 5%;
}
.overflowTest {
width: 90%;
height: 320px;
margin: 0 auto;
padding: 4px;
border: 1px solid gray;
background-color: #fff;
overflow: scroll;
}
#overflowTest1 {
width: 90%;
height: 320px;
margin: 0 auto;
padding: 4px;
border: 1px solid gray;
background-color: #fff;
overflow: scroll;
}
.clear-all {
width: 90%;
height: 30px;
margin: 10px auto 0;
line-height: 30px;
text-align: center;
font-size: 16px;
border: 1px solid gray;
border-radius: 5px;
}

86
target/depository/WEB-INF/classes/static/css/inputTag.css

@ -0,0 +1,86 @@
@keyframes fariy-fadein {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.fairy-tag-container {
width: 100%;
height: 38px;
border: 1px solid #e6e6e6;
background-color: #ffffff;
}
.fairy-tag-container:hover {
border-color: #d2d2d2;
}
.fairy-tag-container span.fairy-tag {
float: left;
font-size: 13px;
padding: 5px 8px;
margin-right: 5px;
margin-bottom: 5px;
border-radius: 2px;
line-height: 16px;
}
.fairy-tag-container span.fairy-tag a {
font-size: 11px;
font-weight: bolder;
color: #ffffff;
text-decoration: none;
margin-left: 6px;
}
.fairy-tag-container span.fairy-tag a:hover {
cursor: pointer;
}
.fairy-tag-container span.fairy-bg-red {
background-color: #FF5722;
}
.fairy-tag-container span.fairy-bg-orange {
background-color: #FFB800;
}
.fairy-tag-container span.fairy-bg-green {
background-color: #009688;
}
.fairy-tag-container span.fairy-bg-cyan {
background-color: #2F4056;
}
.fairy-tag-container span.fairy-bg-blue {
background-color: #1E9FFF;
}
.fairy-tag-container span.fairy-bg-black {
background-color: #393D49;
}
.fairy-tag-container span.fairy-bg-red,
.fairy-tag-container span.fairy-bg-orange,
.fairy-tag-container span.fairy-bg-green,
.fairy-tag-container span.fairy-bg-cyan,
.fairy-tag-container span.fairy-bg-blue,
.fairy-tag-container span.fairy-bg-black {
color: #ffffff;
}
.fairy-tag-container .fairy-anim-fadein {
animation: fariy-fadein 0.3s both;
}
.fairy-tag-container .fairy-tag-input[type='text'] {
width: 80px;
font-size: 13px;
padding: 6px;
background: transparent;
border: 0 none;
outline: 0;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus::-webkit-input-placeholder {
color: transparent;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus:-moz-placeholder {
color: transparent;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus:-moz-placeholder {
color: transparent;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus:-ms-input-placeholder {
color: transparent;
}
/*# sourceMappingURL=inputTag.css.map */

104
target/depository/WEB-INF/classes/static/css/inputTag.less

@ -0,0 +1,104 @@
@keyframes fariy-fadein {
0% {
opacity: 0
}
100% {
opacity: 1
}
}
.fairy-tag-container {
width: auto;
min-height: 100px;
padding: 5px;
border: 1px solid #e6e6e6;
background-color: #ffffff;
&:hover {
border-color: #d2d2d2;
}
span {
&.fairy-tag {
float: left;
font-size: 13px;
padding: 5px 8px;
margin-right: 5px;
margin-bottom: 5px;
border-radius: 2px;
line-height: 16px;
a {
font-size: 11px;
font-weight: bolder;
color: #ffffff;
text-decoration: none;
margin-left: 6px;
&:hover {
cursor: pointer;
}
}
}
&.fairy-bg-red {
background-color: #FF5722;
}
&.fairy-bg-orange {
background-color: #FFB800;
}
&.fairy-bg-green {
background-color: #009688;
}
&.fairy-bg-cyan {
background-color: #2F4056;
}
&.fairy-bg-blue {
background-color: #1E9FFF;
}
&.fairy-bg-black {
background-color: #393D49;
}
&.fairy-bg-red, &.fairy-bg-orange, &.fairy-bg-green, &.fairy-bg-cyan, &.fairy-bg-blue, &.fairy-bg-black {
color: #ffffff;
}
}
.fairy-anim-fadein {
animation: fariy-fadein .3s both;
}
.fairy-tag-input[type='text'] {
width: 80px;
font-size: 13px;
padding: 6px;
background: transparent;
border: 0 none;
outline: 0;
&:focus {
&::-webkit-input-placeholder {
color: transparent;
}
&:-moz-placeholder {
color: transparent;
}
&:-moz-placeholder {
color: transparent;
}
&:-ms-input-placeholder {
color: transparent;
}
}
}
}

934
target/depository/WEB-INF/classes/static/css/layuimini.css

@ -0,0 +1,934 @@
/**
配色方案如有需要请自行配置
*/
/**头部-配色*/
.layui-layout-admin .layui-header {
background-color: #1aa094 !important;
}
.layui-header > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover {
background-color: #197971 !important;
}
.layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover {
background-color: #197971 !important;
}
/**logo-配色*/
.layui-layout-admin .layuimini-logo {
background-color: #243346 !important;
}
/**左侧-配色*/
.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul {
background-color: #2f4056 !important;
}
.layuimini-menu-left .layui-nav .layui-nav-child a:hover:not(.layui-this) {
background-color: #3b3f4b;
}
/**左侧菜单选中-配色*/
.layui-layout-admin .layui-nav-tree .layui-this, .layui-layout-admin .layui-nav-tree .layui-this > a, .layui-layout-admin .layui-nav-tree .layui-nav-child dd.layui-this, .layui-layout-admin .layui-nav-tree .layui-nav-child dd.layui-this a {
background-color: #1aa094 !important;
}
/**头部样式 */
.layui-layout-admin .header {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.layuimini-header-menu, .layui-header {
height: 60px !important;
}
.layuimini-header-menu > .layui-nav-item {
color: #1b1d21;
height: 60px !important;
line-height: 60px !important;
}
.layui-header > .layui-layout-right > .layui-nav-item {
height: 60px !important;
line-height: 60px !important;
}
.layui-layout-left {
left: 295px !important;
}
.layui-nav.layui-layout-left.layuimini-header-menu.layuimini-pc-show {
font-weight: bold;
transition: all .2s;
}
/**logo演示(通用) */
.layui-layout-admin .layuimini-logo {
font-weight: bold;
color: #ffffff !important;
height: 60px !important;
line-height: 60px !important;
overflow: hidden;
line-height: 64px;
transition: all .2s !important;
}
.layui-layout-admin .layuimini-logo img {
display: inline-block;
height: 40px;
vertical-align: middle;
}
.layui-layout-admin .layuimini-logo h1 {
display: inline-block;
margin: 0 0 0 12px;
color: #ffffff;
font-weight: 600;
font-size: 20px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
vertical-align: middle;
}
/**缩放工具(通用) */
.layuimini-tool {
position: absolute !important;
top: 0;
left: 235px;
width: 60px;
height: 100%;
line-height: 60px;
text-align: center;
color: #ffffff !important;
transition: all .2s;
}
/**缩放工具(缩放) */
.layuimini-tool i {
display: block;
color: #bbe3df;
width: 32px;
height: 32px;
line-height: 32px;
border-radius: 3px;
text-align: center;
margin-top: 15px;
cursor: pointer;
}
/**tab选项卡 */
.layuimini-tab {
margin: 0px;
overflow: hidden;
height: 100% !important;
}
.layuimini-tab .layui-tab-content {
height: calc(100% - 37px) !important;
}
.layuimini-tab .layui-tab-content .layui-tab-item {
height: 100%;
}
.layuimini-tab .layui-tab-content {
padding: 0px;
}
.layuimini-tab .layui-tab-title {
border: none;
border: 1px solid whitesmoke;
background-color: white;
}
.layuimini-tab .layui-tab-title li {
border-right: 1px solid whitesmoke;
color: dimgray;
}
.layuimini-tab .layui-tab-title .layui-tab-bar {
display: none;
}
.layuimini-tab .layui-tab-title .layui-this:after {
display: none;
}
.layuimini-tab .layui-tab-title .layuimini-tab-active {
display: inline-block;
background-color: lightgray;
width: 9px;
height: 9px;
border-radius: 30px;
margin-right: 5px;
}
.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active {
background-color: #1aa094;
}
.layuimini-tab > .layui-tab-title, .layuimini-tab > .close-box {
height: 35px !important;
}
.layuimini-tab > .layui-tab-title li, .layuimini-tab > .close-box li {
line-height: 35px !important;
}
.layuimini-tab .layui-tab-title span {
color: #acafb1;
}
.layuimini-tab .layui-tab-title .layui-this span {
color: dimgray;
}
.layuimini-tab .layui-tab-title .layui-tab-close {
font-size: 12px !important;
width: 14px !important;
height: 14px !important;
line-height: 16px !important;
}
.layuimini-tab .layui-tab-title .layui-tab-close:hover {
border-radius: 4em;
background: #ff5722;
}
.layuimini-tab .layui-tab-title .disable-close + .layui-tab-close {
display: none;
}
.layuimini-tab .layui-tab-title .able-close + .layui-tab-close {
display: inline-block;
}
.layuimini-tab .layui-tab-control > li {
position: absolute;
top: 0px;
height: 35px;
line-height: 35px;
width: 35px;
text-align: center;
background-color: white;
border-top: whitesmoke 1px solid;
border-bottom: whitesmoke 1px solid;
}
.layuimini-tab .layuimini-tab-roll-left {
left: 0px;
border-right: whitesmoke 1px solid;
border-left: whitesmoke 1px solid;
}
.layuimini-tab .layuimini-tab-roll-right {
right: 35px;
border-left: 1px solid whitesmoke;
}
.layuimini-tab .layui-tab-tool {
right: 0px;
border-left: 1px solid whitesmoke;
}
.layuimini-tab .layui-tab-control .layui-tab-tool,
.layuimini-tab .layui-tab-control .layuimini-tab-roll-left,
.layuimini-tab .layui-tab-control .layuimini-tab-roll-right {
display: none;
}
.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-left,
.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right {
display: block;
}
.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right {
right: 0px;
border-right: 1px solid whitesmoke;
}
.layuimini-tab.layui-tab-roll .layui-tab-title {
padding-left: 35px;
padding-right: 35px;
}
.layuimini-tab.layui-tab-tool .layui-tab-control .layui-tab-tool {
display: block;
}
.layuimini-tab.layui-tab-tool .layui-tab-title {
padding-left: 0px;
padding-right: 35px;
}
.layuimini-tab.layui-tab-rollTool .layui-tab-title {
padding-left: 35px;
padding-right: 80px;
}
.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-left,
.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-right,
.layuimini-tab.layui-tab-rollTool .layui-tab-control .layui-tab-tool {
display: block;
}
.layuimini-tab .layui-tab-tool .layui-nav {
position: absolute;
height: 43px !important;
top: 0;
width: 100%;
height: 100%;
padding: 0;
background: 0 0;
}
.layuimini-tab .layui-tab-tool .layui-nav-item {
height: 35px;
}
.layuimini-tab .layui-tab-tool .layui-nav-bar {
display: none;
}
.layuimini-tab .layui-tab-tool .layui-nav-child {
left: auto;
top: 45px;
right: 3px;
width: 120px;
border: 1px solid whitesmoke;
}
.layuimini-tab .layui-tab-tool .layui-this a {
background-color: #009688;
}
.layuimini-tab-loading {
position: absolute;
display: none;
width: 100%;
height: calc(100% - 37px);
top: 37px;
z-index: 19;
background-color: #fff
}
.layuimini-tab-loading.close {
animation: close 1s;
-webkit-animation: close 1s;
animation-fill-mode: forwards;
}
/**左侧菜单栏 (通用) */
.layui-side.layui-bg-black {
transition: all .2s;
}
.layui-side.layui-bg-black > .layuimini-menu-left > ul {
transition: all .2s;
}
.layui-side.layui-bg-black > .layuimini-menu-left > ul > .layui-nav-item:first-child {
border-top: 1px solid #4b5461;
}
.layuimini-menu-left .layui-nav .layui-nav-item a {
height: 40px;
line-height: 40px;
padding-right: 30px;
}
.layuimini-menu-left .layui-nav .layui-nav-item > a {
padding-top: 5px;
padding-bottom: 5px;
}
.layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child {
background: 0 0 !important
}
.layuimini-menu-left .layui-nav .layui-nav-more {
right: 15px;
}
.layuimini-menu-left .layui-nav .layui-nav-item a:hover {
background-color: transparent !important;
}
.layuimini-menu-left .layui-nav {
background-color: transparent !important;
}
/**左侧菜单栏 (正常) */
.layui-layout-body .layui-nav-itemed .layui-nav-child a, .layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child a {
padding-left: 35px;
}
.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child a {
padding-left: 45px;
}
.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child a {
padding-left: 55px;
}
.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a {
padding-left: 65px;
}
.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-itemed > .layui-nav-child {
padding: 5px 0;
}
/**内容主体(通用) */
.layui-layout-admin .layui-body {
overflow: hidden;
bottom: 0px !important;
top: 60px !important;
transition: all .2s;
}
/**选择配色方案 */
.layuimini-color .color-title {
padding: 10px 0 10px 20px;
border-bottom: 1px solid #d9dada;
margin-bottom: 8px;
}
.layuimini-color .color-content {
padding: 10px 5px 0 5px;
}
.layuimini-color .color-content ul {
list-style: none;
text-align: center;
}
.layuimini-color .color-content ul li {
position: relative;
display: inline-block;
vertical-align: top;
width: 80px;
height: 50px;
margin: 0 15px 15px 0;
padding: 2px 2px 4px 2px;
background-color: #f2f2f2;
cursor: pointer;
font-size: 12px;
color: #666;
}
.layuimini-color .color-content li.layui-this:after, .layuimini-color .color-content li:hover:after {
width: 100%;
height: 100%;
padding: 4px;
top: -5px;
left: -5px;
border-color: #d8d8d8;
opacity: 1;
}
.layuimini-color .color-content li:after {
content: '';
position: absolute;
z-index: 20;
top: 50%;
left: 50%;
width: 1px;
height: 0;
border: 1px solid #f2f2f2;
transition: all .3s;
-webkit-transition: all .3s;
opacity: 0;
}
/**其它 */
.layui-tab-item {
width: 100% !important;
height: 100% !important;
}
.layui-nav-item.layui-this {
background-color: #1b1d21;
}
.layui-width-height {
width: 100%;
height: 95%;
}
.layui-tab {
margin: 0 0 0 0;
z-index: 99999;
}
.text-center {
height: 30px !important;
line-height: 30px !important;
text-align: center !important;
}
.layui-nav {
padding: 0 !important;
}
.layui-nav .layui-this:after, .layui-nav-bar, .layui-nav-tree .layui-nav-itemed:after {
width: 0 !important;
height: 0 !important;
}
.layui-layout-admin .layui-side {
top: 60px !important;
}
.layui-tab-card {
box-shadow: 0px 0px 0px #888888;
border-bottom: 0;
}
/**自定义滚动条样式 */
::-webkit-scrollbar {
display: none
}
/*移动端遮罩层*/
.layuimini-make {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 1000;
background: rgba(0, 0, 0, .5);
display: none;
}
.layuimini-mini .layui-header {
z-index: 1001;
}
/**初始化加载层*/
.layuimini-loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #ffffff;
z-index: 999999;
}
.layuimini-loader .layuimini-loader-inner {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #1E9FFF;
animation: spin 2s linear infinite;
}
.layuimini-loader .layuimini-loader-inner:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #1E9FFF;
animation: spin 3s linear infinite;
}
.layuimini-loader .layuimini-loader-inner:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #1E9FFF;
animation: spin 1.5s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
to {
transform: rotate(1turn);
}
}
/*系统设置*/
.layuimini-color .layui-word-aux {
position: absolute;
left: 60px;
top: 12px;
font-size: 12px;
}
.layuimini-color .layui-input-block {
margin-left: 15px;
min-height: 36px;
}
.layuimini-color .more-menu-list {
width: 100%;
margin-top: 30px;
}
.layuimini-color .more-menu-item:first-child {
border-top: 1px solid #e8e8e8;
}
.layuimini-color .more-menu-item .layui-icon {
font-size: 18px;
padding-right: 10px;
}
.layuimini-color .more-menu-item {
color: #595959;
height: 50px;
line-height: 50px;
font-size: 16px;
padding: 0 25px;
border-bottom: 1px solid #e8e8e8;
font-style: normal;
display: block;
}
.layuimini-color .more-menu-item:hover {
background-color: whitesmoke;
}
.layuimini-color .more-menu-item:after {
color: #8c8c8c;
right: 16px;
content: "\e602";
position: absolute;
font-family: layui-icon !important;
}
/**
鼠标右键
*/
.layuimini-tab-mousedown {
display: none;
width: 80px;
position: absolute;
top: 0px !important;
left: 0px !important;
}
.layuimini-tab-mousedown dd a {
padding: 0 15px;
color: #484545;
}
.layuimini-tab-make {
position: absolute;
top: 36px;
bottom: 0px;
width: 100%;
background: rgb(255, 255, 255, 0);
padding: 0px;
overflow: hidden;
}
/**
菜单缩放
*/
.popup-tips .layui-layer-TipsG {
display: none;
}
.popup-tips.layui-layer-tips .layui-layer-content {
padding: 0;
}
.popup-tips .layui-nav-tree {
width: 150px;
border-radius: 10px;
}
/**左侧菜单字体间距*/
.layuimini-menu-left .layui-nav-item a span {
letter-spacing: 1px;
}
/**头部菜单字体间距*/
.layui-layout-admin .layui-header .layuimini-header-menu.layuimini-pc-show, .layui-layout-admin .layui-header .layuimini-header-menu.layuimini-mobile-show {
letter-spacing: 1px;
}
/**左侧菜单更多下拉样式*/
.layuimini-menu-left .layui-nav-more, .layuimini-menu-left-zoom .layui-nav-more {
font-family: layui-icon !important;
font-size: 12px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow: hidden;
width: auto;
height: auto;
line-height: normal;
border: none;
display: inline-block;
margin-top: -6px !important;
}
.layuimini-menu-left .layui-nav-child .layui-nav-more {
margin-top: -6px !important;
}
.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more {
margin-top: -9px !important;
}
.layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more {
margin-top: -9px !important;
}
.layuimini-menu-left .layui-nav-more:before, .layuimini-menu-left-zoom .layui-nav-more:before {
content: "\e61a";
}
.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more, .layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more {
transform: rotate(180deg);
-ms-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-webkit-transform: rotate(180deg);
-o-transform: rotate(180deg);
width: 12px;
text-align: center;
border-style: none;
}
.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more:before, .layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more:before {
content: '\e61a';
background-color: transparent;
display: inline-block;
vertical-align: middle;
}
/**修复左侧菜单字体不对齐的问题*/
.layuimini-menu-left .layui-nav-item a .fa, .layuimini-menu-left .layui-nav-item a .layui-icon {
width: 20px;
}
/**
PC版样式
*/
@media screen and (min-width: 1025px) {
/**头部样式(缩放) */
.layuimini-mini .layui-layout-left.layuimini-header-menu.layuimini-pc-show {
left: 155px !important;
}
/**logo演示(缩放) */
.layuimini-mini .layui-layout-admin .layuimini-logo {
width: 60px !important;
}
.layuimini-mini .layui-layout-admin .layuimini-logo h1 {
display: none;
}
/**左侧菜单栏(缩放) */
.layuimini-mini .layuimini-menu-left {
width: 80px !important;
}
.layuimini-mini .layui-side.layui-bg-black, .layuimini-mini .layuimini-menu-left > ul, .layuimini-mini .layuimini-menu-left > ul li i {
width: 60px !important;
}
.layuimini-mini .layuimini-menu-left > ul li span:first-child {
display: none;
}
.layuimini-mini .layuimini-menu-left > ul li span:last-child {
float: right;
right: 7px;
}
.layuimini-mini .layuimini-menu-left .layui-nav .layui-nav-item a {
height: 40px;
line-height: 40px;
padding-right: 0px !important;
}
/**内容主体(缩放) */
.layuimini-mini .layui-layout-admin .layui-body {
left: 60px !important;
}
.layuimini-mini .layuimini-tool {
left: 95px !important;
}
.layuimini-pc-show {
display: block;
}
.layuimini-mobile-show {
display: none;
}
/**菜单缩放*/
.layuimini-mini .layuimini-menu-left .layui-nav-more, .layuimini-mini .layuimini-menu-left .layui-nav-child {
display: none;
!important;
}
}
/**
手机自适应样式
*/
@media screen and (max-width: 1024px) {
/**
todo 修复低版本IOS不能滑动问题, 但还是有问题, 低版本IOS部分情况下子页面无法自适应
*/
.layuimini-tab .layui-tab-content .layui-tab-item {
-webkit-overflow-scrolling: touch;
overflow: scroll;
width: 100%;
height: 100%;
}
.layuimini-tab .layui-tab-content .layui-tab-item iframe {
height: 100%;
width: 100%;
}
.layuimini-pc-show {
display: none;
}
.layuimini-mobile-show {
display: block;
}
.layuimini-header-content {
left: 0;
}
.layui-layout-admin .layui-body .layui-tab-item.layui-show {
border-top: 1px solid #e2e2e2;
}
.layuimini-all .layui-layout-left.layuimini-header-menu {
left: 15px !important
}
.layuimini-mini .layui-layout-left.layuimini-header-menu {
left: 205px !important
}
.layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) {
width: 40px !important;
}
.layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) a {
padding: 0 15px;
}
.layuimini-all .layui-layout-admin .layui-body {
left: 0px !important;
}
.layuimini-mini .layui-layout-admin .layuimini-menu-left, .layuimini-mini .layui-header .layuimini-logo {
left: 0;
transition: left .2s;
z-index: 1001 !important;
}
.layuimini-all .layui-layout-admin .layuimini-menu-left, .layuimini-all .layui-header .layuimini-logo {
left: -200px;
transition: left .2s;
top: 0;
z-index: 1002;
}
.layuimini-mini .layui-layout-admin .layui-body {
left: 0 !important;
transition: left .2s;
top: 0;
z-index: 998;
}
.layuimini-mini .layuimini-make {
display: block;
}
.layuimini-multi-module .layuimini-header-content .layuimini-tool {
display: none;
}
.layuimini-single-module .layuimini-header-content .layuimini-tool {
left: 15px;
}
.layuimini-mini .layuimini-site-mobile {
display: none !important;
}
.layuimini-site-mobile {
display: block !important;
position: fixed;
z-index: 100000;
bottom: 15px;
left: 15px;
width: 40px;
height: 40px;
line-height: 40px;
border-radius: 2px;
text-align: center;
background-color: rgba(0, 0, 0, .7);
color: #fff;
}
.layuimini-header-content {
z-index: 997;
}
/*修复UC之类的浏览器点击无效*/
.layuimini-make {
cursor: pointer;
}
.layuimini-site-mobile {
cursor: pointer;
}
}
@media screen and (max-width: 550px) {
/**头部右侧数据*/
.layuimini-multi-module.layuimini-mini .layuimini-header-content .layui-layout-right {
display: none;
}
}

102
target/depository/WEB-INF/classes/static/css/public.css

@ -0,0 +1,102 @@
body {
background: #f2f2f2;
}
.layuimini-container {
border: 1px solid #f2f2f2;
border-radius: 5px;
background-color: #ffffff
}
.layuimini-main {
margin: 10px 10px 10px 10px;
}
/**必填红点 */
.layuimini-form > .layui-form-item > .required:after {
content: '*';
color: red;
position: absolute;
margin-left: 4px;
font-weight: bold;
line-height: 1.8em;
top: 6px;
right: 5px;
}
.layuimini-form > .layui-form-item > .layui-form-label {
width: 120px ;
}
.layuimini-form > .layui-form-item > .layui-input-block {
margin-left: 150px !important;
}
.layuimini-form > .layui-form-item > .layui-input-block > tip {
display: inline-block;
margin-top: 10px;
line-height: 10px;
font-size: 10px;
color: #a29c9c;
}
/**搜索框*/
.layuimini-container .table-search-fieldset {
margin: 0;
border: 1px solid #e6e6e6;
padding: 10px 20px 5px 20px;
color: #6b6b6b;
position: sticky;
top: 0;
z-index: 999;
background: #ffffff;
}
/**自定义滚动条样式 */
::-webkit-scrollbar {
width: 6px;
height: 6px
}
::-webkit-scrollbar-track {
background-color: transparent;
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em;
}
::-webkit-scrollbar-thumb {
background-color: #9c9da0;
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em
}
.my-shadow:hover {
box-shadow: 2px 0 4px rgba(0, 21, 41, .35);
}
.my-card {
cursor: pointer;
width: 100%;
display: inline-block;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.my-card-context{
margin-left: 15px;
font-size: 18px;
margin-top: 5px;
font-weight:normal;
}
.my-time {
margin-top: 40px;
margin-bottom: 20px;
}
body {
font-family: 华文楷体;
font-weight: bold;
}

95
target/depository/WEB-INF/classes/static/css/themes/default.css

@ -0,0 +1,95 @@
/*头部右侧背景色 headerRightBg */
.layui-layout-admin .layui-header {
background-color: #ffffff !important;
}
/*头部右侧选中背景色 headerRightBgThis */
.layui-layout-admin .layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover {
background-color: #e4e4e4 !important;
}
/*头部右侧字体颜色 headerRightColor */
.layui-layout-admin .layui-header .layui-nav .layui-nav-item a {
color: rgba(107, 107, 107, 0.7);
}
/**头部右侧下拉字体颜色 headerRightChildColor */
.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child a {
color: rgba(107, 107, 107, 0.7) !important;
}
/*头部右侧鼠标选中 headerRightColorThis */
.layui-header .layuimini-menu-header-pc.layui-nav .layui-nav-item a:hover, .layui-header .layuimini-header-menu.layuimini-pc-show.layui-nav .layui-this a {
color: #565656 !important;
}
/*头部右侧更多下拉颜色 headerRightNavMore */
.layui-header .layui-nav .layui-nav-more {
border-top-color: rgba(160, 160, 160, 0.7) !important;
}
/*头部右侧更多下拉颜色 headerRightNavMore */
.layui-header .layui-nav .layui-nav-mored, .layui-header .layui-nav-itemed > a .layui-nav-more {
border-color: transparent transparent rgba(160, 160, 160, 0.7) !important;
}
/**头部右侧更多下拉配置色 headerRightNavMoreBg headerRightNavMoreColor */
.layui-header .layui-nav .layui-nav-child dd.layui-this a, .layui-header .layui-nav-child dd.layui-this, .layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child .layui-this a {
background-color: #1E9FFF !important;
color: #ffffff !important;
}
/*头部缩放按钮样式 headerRightToolColor */
.layui-layout-admin .layui-header .layuimini-tool i {
color: #565656;
}
/*logo背景颜色 headerLogoBg */
.layui-layout-admin .layuimini-logo {
background-color: #192027 !important;
}
/*logo字体颜色 headerLogoColor */
.layui-layout-admin .layuimini-logo h1 {
color: rgb(191, 187, 187);
}
/*左侧菜单更多下拉样式 leftMenuNavMore */
.layuimini-menu-left .layui-nav .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-more {
border-top-color: rgb(191, 187, 187);
}
/*左侧菜单更多下拉样式 leftMenuNavMore */
.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more {
border-color: transparent transparent rgb(191, 187, 187) !important;
}
/*左侧菜单背景 leftMenuBg */
.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul, .layuimini-menu-left-zoom > ul {
background-color: #28333E !important;
}
/*左侧菜单选中背景 leftMenuBgThis */
.layuimini-menu-left .layui-nav-tree .layui-this, .layuimini-menu-left .layui-nav-tree .layui-this > a, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a, .layuimini-menu-left-zoom.layui-nav-tree .layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-this > a, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a {
background-color: #1E9FFF !important
}
/*左侧菜单子菜单背景 leftMenuChildBg */
.layuimini-menu-left .layui-nav-itemed > .layui-nav-child {
background-color: #0c0f13 !important;
}
/*左侧菜单字体颜色 leftMenuColor */
.layuimini-menu-left .layui-nav .layui-nav-item a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a {
color: rgb(191, 187, 187) !important;
}
/*左侧菜单选中字体颜色 leftMenuColorThis */
.layuimini-menu-left .layui-nav .layui-nav-item a:hover, .layuimini-menu-left .layui-nav .layui-this a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a:hover, .layuimini-menu-left-zoom.layui-nav .layui-this a {
color: #ffffff !important;
}
/**tab选项卡选中颜色 tabActiveColor */
.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active {
background-color: #1e9fff;
}

BIN
target/depository/WEB-INF/classes/static/images/bg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
target/depository/WEB-INF/classes/static/images/cam.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

BIN
target/depository/WEB-INF/classes/static/images/captcha.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
target/depository/WEB-INF/classes/static/images/donate_qrcode.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
target/depository/WEB-INF/classes/static/images/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
target/depository/WEB-INF/classes/static/images/home.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

BIN
target/depository/WEB-INF/classes/static/images/icon-login.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
target/depository/WEB-INF/classes/static/images/loginbg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 KiB

BIN
target/depository/WEB-INF/classes/static/images/logo.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
target/depository/WEB-INF/classes/static/images/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
target/depository/WEB-INF/classes/static/images/logo_back.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
target/depository/WEB-INF/classes/static/images/logo_back.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
target/depository/WEB-INF/classes/static/images/logo_back.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
target/depository/WEB-INF/classes/static/images/search.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
target/depository/WEB-INF/classes/static/images/search.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
target/depository/WEB-INF/classes/static/images/sousuo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
target/depository/WEB-INF/classes/static/images/vid.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

14
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableBarCode.js

@ -0,0 +1,14 @@
var DrawLableBarCodeParam = {
"x": 20.0,
"y": 10.0,
"height": 10,
"width": 50,
"value": '12345678',
"codeType": 20,
"rotate": 0,
"fontSize": 4.0,
"textHeight": 0,
"textPosition": 0,
}

12
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableGraph.js

@ -0,0 +1,12 @@
var DrawLableGraphParam = {
"x": 2.0,
"y": 5.0,
"height": 30,
"width": 40,
"rotate": 0,
"graphType": 3,
"cornerRadius": 0,
"lineWidth": 4,
"lineType":2,
"dashwidth": [1,1],
}

10
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableImage.js

File diff suppressed because one or more lines are too long

9
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableLine.js

@ -0,0 +1,9 @@
var DrawLableLineParam = {
"x": 2.0,
"y": 2.0,
"height": 2,
"width": 50,
"rotate": 0,
"lineType": 2,
"dashwidth": [1,1],
}

9
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableQrCode.js

@ -0,0 +1,9 @@
var DrawLableQrCodeParam = {
"x": 20.0,
"y": 10.0,
"height": 10,
"width": 10,
"value": "精臣SDK",
"rotate": 0,
"codeType": 31,
}

17
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/DrawLableText.js

@ -0,0 +1,17 @@
var DrawLableTextParam = {
"x": 20.0,
"y": 10.0,
"height": 10,
"width": 50,
"value": "精臣SDK",
"fontFamily": "宋体",
"rotate": 0,
"fontSize": 4.0,
"textAlignHorizonral": 0,
"textAlignVertical": 0,
"letterSpacing": 1.0,
"lineSpacing": 1.0,
"lineMode":0,
"fontStyle": [false, false, false,false],
}

8
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/InitDrawingBoard.js

@ -0,0 +1,8 @@
var InitDrawingBoardParam={
"width":70,
"height":50,
"rotate":0,
"path":"ZT001.ttf",
"verticalShift":0,
"HorizontalShift":0};

3
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/generateImagePreviewImage.js

@ -0,0 +1,3 @@
var generateImagePreviewImageParam = {
"displayScale":8
}

4
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/initSdk.js

@ -0,0 +1,4 @@
var initSdkParam = {
"fontDir":"",
}

3
target/depository/WEB-INF/classes/static/js/JcPrinter/drawParameter/picturePrint.js

File diff suppressed because one or more lines are too long

1
target/depository/WEB-INF/classes/static/js/JcPrinter/element-ui_lib_index.js

File diff suppressed because one or more lines are too long

BIN
target/depository/WEB-INF/classes/static/js/JcPrinter/font/SourceHanSans-Regular.ttc

Binary file not shown.

BIN
target/depository/WEB-INF/classes/static/js/JcPrinter/font/ZT001.ttf

Binary file not shown.

369
target/depository/WEB-INF/classes/static/js/JcPrinter/font/language.json

@ -0,0 +1,369 @@
{
"0020-007F": {
"description":"Basic_Latin",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"00A0-00FF":{
"description":"Latin-1_Supplement",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"0100-017F":{
"description":"Latin Extended-A",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"0370-03FF": {
"description":"Greek and Coptic",
"fontFile":""
},
"10A0-10FF": {
"description":"Georgian",
"fontFile":"NotoSansGeorgian-Regular.otf"
},
"0400-04FF": {
"description":"Cyrillic",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"0500-052F": {
"description":"Cyrillic Supplementary",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"0530-058F": {
"description":"Armenian",
"fontFile":"NotoSansArmenian-Regular.otf"
},
"0590-05FF":{
"description":"Hebrew",
"fontFile":"NotoSansHebrew-Regular.ttf"
},
"0600-06FF":{
"description":"Arabic",
"fontFile":"NotoNaskhArabic-Regular.ttf"
},
"0700-074F":{
"description":"Syriac",
"fontFile":"NotoSansSyriacEstrangela-Regular.ttf"
},
"0780-07BF":{
"description":"Thaana",
"fontFile":"NotoSansThaana-Regular.ttf"
},
"0900-097F":{
"description":"Devanagari",
"fontFile":"NotoSansDevanagari-Regular.otf"
},
"0980-09FF":{
"description":"Bengali",
"fontFile":"NotoSansBengali-Regular.otf"
},
"0A00-0A7F":{
"description":"Gurmukhi",
"fontFile":"NotoSansGurmukhi-Regular.ttf"
},
"0B00-0B7F":{
"description":"Oriya",
"fontFile":"NotoSansOriya-Regular.ttf"
},
"0B80-0BFF":{
"description":"Tamil",
"fontFile":"NotoSansTamil-Regular.otf"
},
"0C00-0C7F":{
"description":"Telugu",
"fontFile":"NotoSansTelugu-Regular.ttf"
},
"0C80-0CFF":{
"description":"Kannada",
"fontFile":"NotoSansKannada-Regular.ttf"
},
"0D00-0D7F":{
"description":"Malayalam",
"fontFile":"NotoSansMalayalam-Regular.otf"
},
"0D80-0DFF":{
"description":"Sinhala",
"fontFile":"NotoSansSinhala-Regular.otf"
},
"0E00-0E7F":{
"description":"Thai",
"fontFile":"NotoSansThai-Regular.ttf"
},
"0E80-0EFF":{
"description":"Lao",
"fontFile":"NotoSansLao-Regular.ttf"
},
"0F00-0FFF":{
"description":"Tibetan",
"fontFile":"NotoSansTibetan-Regular.ttf"
},
"1000-109F":{
"description":"Myanmar",
"fontFile":"NotoSansMyanmar-Regular-ZawDecode.ttf"
},
"10000-1007F":{
"description":"Linear B Syllabary",
"fontFile":"NotoSansLinearB-Regular.ttf"
},
"10080-100FF":{
"description":"Linear B Ideograms",
"fontFile":"NotoSansLinearB-Regular.ttf"
},
"10380-1039F":{
"description":"Ugaritic",
"fontFile":"NotoSansUgaritic-Regular.ttf"
},
"10450-1047F":{
"description":"Shavian",
"fontFile":"NotoSansShavian-Regular.ttf"
},
"10400-1044F":{
"description":"Deseret",
"fontFile":"NotoSansDeseret-Regular.ttf"
},
"10480-104AF":{
"description":"Osmanya",
"fontFile":"NotoSansOsmanya-Regular.ttf"
},
"10800-1083F":{
"description":"Cypriot ",
"fontFile":"NotoSansCypriot-Regular.ttf"
},
"1200-137F":{
"description":"Ethiopic",
"fontFile":"NotoSansEthiopic-Regular.ttf"
},
"13A0-13FF":{
"description":"Cherokee",
"fontFile":"NotoSansCherokee-Regular.ttf"
},
"1400-167F":{
"description":"Unified Canadian Aboriginal Syllabics",
"fontFile":"NotoSansCanadianAboriginal-Regular.ttf"
},
"1680-169F":{
"description":"Ogham",
"fontFile":"NotoSansOgham-Regular.ttf"
},
"16A0-16FF":{
"description":"Runic",
"fontFile":"NotoSansRunic-Regular.ttf"
},
"1700-171F":{
"description":"Tagalog",
"fontFile":"NotoSansTagalog-Regular.ttf"
},
"1720-173F":{
"description":"Hanunoo",
"fontFile":"NotoSansHanunoo-Regular.ttf"
},
"1740-175F":{
"description":"Buhid",
"fontFile":"NotoSansBuhid-Regular.ttf"
},
"1760-177F":{
"description":"Tagbanwa",
"fontFile":"NotoSansTagbanwa-Regular.ttf"
},
"1780-17FF":{
"description":"Khmer",
"fontFile":"NotoSansKhmer-VF.ttf"
},
"1800-18AF":{
"description":"Mongolian",
"fontFile":"NotoSansMongolian-Regular.ttf"
},
"1900-194F":{
"description":"Limbu",
"fontFile":"NotoSansLimbu-Regular.ttf"
},
"1950-197F":{
"description":"Tai Le",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"19E0-19FF":{
"description":"Khmer Symbols",
"fontFile":"NotoSansKhmer-VF.ttf"
},
"1D000-1D0FF":{
"description":"Byzantine Musical Symbols",
"fontFile":"NotoSansSymbols-Regular-Subsetted.ttf"
},
"1D300-1D35F":{
"description":"Tai Xuan Jing Symbols",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"1E00-1EFF":{
"description":"Latin Extended Additional",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"1F00-1FFF":{
"description":"Greek Extended",
"fontFile":"NotoSansSylotiNagri-Regular.ttf"
},
"2000-206F":{
"description":"General Punctuation",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"20000-2A6DF":{
"description":"CJK",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"20A0-20CF":{
"description":"Currency Symbols",
"fontFile":"NotoSansSymbols-Regular-Subsetted2.ttf"
},
"20D0-20FF":{
"description":"Combining Diacritical Marks for Symbols",
"fontFile":"NotoSansSymbols-Regular-Subsetted2.ttf"
},
"2100-214F":{
"description":"Letterlike Symbols",
"fontFile":"NotoSansSymbols-Regular-Subsetted.ttf"
},
"2200-22FF":{
"description":"Tai Le",
"fontFile":"NotoSansSymbols-Regular-Subsetted.ttf"
},
"2300-23FF":{
"description":"Miscellaneous Technical",
"fontFile":"NotoSansSymbols-Regular-Subsetted.ttf"
},
"2400-243F":{
"description":"Control Pictures",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"2440-245F":{
"description":"Optical Character Recognition",
"fontFile":"NotoSansGujarati-Regular.ttf"
},
"2460-24FF":{
"description":"Enclosed Alphanumerics",
"fontFile":"NotoSansGujarati-Regular.ttf"
},
"2500-257F":{
"description":"Box Drawing",
"fontFile":"NotoSansGujarati-Regular.ttf"
},
"2580-259F":{
"description":"Block Elements",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"25A0-25FF":{
"description":"Geometric Shapes",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"2600-26FF":{
"description":"Miscellaneous Symbols",
"fontFile":"NotoSansSymbols-Regular-Subsetted.ttf"
},
"2700-27BF":{
"description":"Dingbats",
"fontFile":"NotoSansTaiLe-Regular.ttf"
},
"27C0-27EF":{
"description":"@Miscellaneous Mathematical Symbols-A",
"fontFile":"NotoSansSymbols-Regular-Subsetted.ttf"
},
"27F0-27FF":{
"description":"@Supplemental Arrows-A",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"2800-28FF":{
"description":"Braille Patterns",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"2900-297F":{
"description":"@Supplemental Arrows-B",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"2980-29FF":{
"description":"Miscellaneous Mathematical Symbols-B",
"fontFile":"NotoSansSymbols-Regular-Subsetted2.ttf"
},
"2A00-2AFF":{
"description":"@Supplemental Mathematical Operators",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"2B00-2BFF":{
"description":"@Miscellaneous Symbols and Arrows",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"2E80-2EFF":{
"description":"CJK Radicals Supplement",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"2F800-2FA1F":{
"description":"Tai Le",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"3040-309F":{
"description":"Hiragana",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"30A0-30FF":{
"description":"Katakana",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"3100-312F":{
"description":"Bopomofo",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"3130-318F":{
"description":"Hangul Compatibility Jamo",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"3190-319F":{
"description":"Kanbun",
"fontFile":"NotoSansKannada-Regular.ttf"
},
"31A0-31BF":{
"description":"Tai Le",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"31F0-31FF":{
"description":"Katakana Phonetic Extensions",
"fontFile":"NotoSansCJK-Regular.ttc"
},"3200-32FF":{
"description":"Enclosed CJK Letters and Months",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"3300-33FF":{
"description":"CJK Compatibility",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"4DC0-4DFF":{
"description":"Yijing Hexagram Symbols",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"4E00-9FFF":{
"description":"CJK Unified Ideographs",
"fontFile":"ZT001.ttf"
},
"FB00-FB4F":{
"description":"Alphabetic Presentation Forms",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"FB50-FDFF":{
"description":"Arabic Presentation Forms-A",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"FE00-FE0F":{
"description":"Variation Selectors",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"FE20-FE2F":{
"description":"Combining Half Marks",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"FE30-FE4F":{
"description":"CJK Compatibility Forms",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"FE50-FE6F":{
"description":"Small Form Variants",
"fontFile":"NotoSansCJK-Regular.ttc"
},
"FF00-FFEF":{
"description":"Halfwidth and Fullwidth Forms",
"fontFile":"NotoSansCJK-Regular.ttc"
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save