From dfd61f47ab99e875d6dbac51e96ef27b7d882d51 Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期六, 29 五月 2021 11:02:55 +0800
Subject: [PATCH] 库存同步功能
---
src/main/java/zy/cloud/wms/manager/mapper/WrkLocSyncMapper.java | 18 +
src/main/java/zy/cloud/wms/manager/service/WrkLocSyncService.java | 13 +
src/main/java/zy/cloud/wms/manager/controller/LocSyncController.java | 131 +++++++++++++
src/main/resources/mapper/WrkLocSyncMapper.xml | 34 +++
src/main/webapp/static/js/locSync/locSync.js | 140 ++++++++++++++
src/main/java/zy/cloud/wms/manager/service/impl/LocSyncServiceImpl.java | 23 ++
src/main/java/zy/cloud/wms/manager/service/impl/WrkLocSyncServiceImpl.java | 27 ++
version/v1.0.2/change_log | 38 +++
src/main/java/zy/cloud/wms/manager/entity/LocSum.java | 21 ++
src/main/java/zy/cloud/wms/manager/mapper/LocSyncMapper.java | 16 +
src/main/java/zy/cloud/wms/manager/service/LocSyncService.java | 12 +
src/main/resources/mapper/LocSyncMapper.xml | 23 ++
src/main/java/zy/cloud/wms/manager/entity/WrkLocSync.java | 30 +++
src/main/webapp/views/locSync/locSync.html | 36 +++
14 files changed, 562 insertions(+), 0 deletions(-)
diff --git a/src/main/java/zy/cloud/wms/manager/controller/LocSyncController.java b/src/main/java/zy/cloud/wms/manager/controller/LocSyncController.java
new file mode 100644
index 0000000..aebec2f
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/controller/LocSyncController.java
@@ -0,0 +1,131 @@
+package zy.cloud.wms.manager.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
+import com.core.exception.CoolException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import zy.cloud.wms.common.model.BillDto;
+import zy.cloud.wms.common.service.erp.ErpService;
+import zy.cloud.wms.common.web.BaseController;
+import zy.cloud.wms.manager.entity.LocSum;
+import zy.cloud.wms.manager.entity.Pakout;
+import zy.cloud.wms.manager.entity.WrkLocSync;
+import zy.cloud.wms.manager.service.LocSyncService;
+import zy.cloud.wms.manager.service.PakoutService;
+import zy.cloud.wms.manager.service.WrkLocSyncService;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@Slf4j
+public class LocSyncController extends BaseController {
+ @Autowired
+ private LocSyncService locSyncService;
+ @Autowired
+ private WrkLocSyncService wrkLocSyncService;
+ @Autowired
+ private ErpService erpService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+
+ @RequestMapping(value = "/locSync/queryLocSum")
+ @ManagerAuth(memo = "鑾峰彇鎬诲簱瀛樻竻鍗�")
+ public R queryLocSum() {
+ return R.ok(locSyncService.queryLocSum());
+ }
+
+ @RequestMapping(value = "/locSync/syncLocWrkCount")
+ @ManagerAuth(memo = "鑾峰彇搴撳瓨鍚屾涓婁紶娓呭崟鏁伴噺")
+ public R getSyncLocWrkCount() {
+ return R.ok(wrkLocSyncService.getSyncLocWrkCount());
+ }
+
+
+ @RequestMapping(value = "/locSync/insertWrklocSync")
+ @ManagerAuth(memo = "鍚屾涓婁紶娓呭崟鏁版嵁鎻掑叆")
+ public R insertWrklocSync(@RequestBody JSONObject param) {
+ List<WrkLocSync> list = JSONObject.parseArray(param.getJSONArray("list").toJSONString(), WrkLocSync.class);
+ // 鎻掑叆鍒涘缓浜哄憳鍜屽垱寤烘椂闂�
+ if (list.size() > 0) {
+ for (WrkLocSync elist : list) {
+ elist.setCreateBy(getUserId());
+ elist.setCreateTime(new Date());
+ }
+ }
+ Integer result = 0;
+ result = wrkLocSyncService.insertWrkLocSync(list);
+ return R.ok(result);
+ }
+
+
+ @RequestMapping(value = "/locSync/updateWrklocSync")
+ @ManagerAuth(memo = "娓呯┖鍚屾涓婁紶娓呭崟鏁版嵁锛屽苟鎻掑叆")
+ public R updateWrklocSync(@RequestBody JSONObject param) {
+ // 娓呯┖鍚屾涓婁紶娓呭崟鏁版嵁
+ if (!wrkLocSyncService.clearWrkLocSync()) {
+ throw new CoolException("鍚屾涓婁紶娓呭崟鏁版嵁娓呯┖澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ ;
+ List<WrkLocSync> list = JSONObject.parseArray(param.getJSONArray("list").toJSONString(), WrkLocSync.class);
+ // 鎻掑叆鍒涘缓浜哄憳鍜屽垱寤烘椂闂�
+ if (list.size() > 0) {
+ for (WrkLocSync elist : list) {
+ elist.setCreateBy(getUserId());
+ elist.setCreateTime(new Date());
+ }
+ }
+ Integer result = 0;
+ result = wrkLocSyncService.insertWrkLocSync(list);
+ return R.ok(result);
+ }
+
+ /* 鍚屾涓婁紶erp[uploadBill] 鍗曟嵁涓婁紶 */
+ @Scheduled(cron = "0/5 * * * * ? ")
+ public void execute() {
+ List<String> orderList = new ArrayList<>();
+ orderList.add("state");
+ orderList.add("create_time");
+ List<WrkLocSync> syncList = wrkLocSyncService.selectList(new EntityWrapper<WrkLocSync>().orderDesc(orderList));
+ // 鍚屾涓婁紶娓呭崟澶勭悊锛屽彇绗竴鏉�
+ if (!Cools.isEmpty(syncList)) {
+ WrkLocSync executeData = syncList.get(0);
+ // 璁㈠崟鍙�
+ String docNum = String.valueOf(snowflakeIdWorker.nextId());
+ // 璁㈠崟绫诲瀷 34閲囪喘鍗�
+ Integer docId = 34;
+ List<BillDto> dtos = new ArrayList<BillDto>();
+ BillDto res = new BillDto();
+ res.setMatnr(executeData.getMatnr());
+ res.setQty(executeData.getQty());
+ dtos.add(res);
+ if (erpService.uploadBill(dtos, docId, docNum)) {
+ // 鎴愬姛鍚庡垹闄や换鍔�
+ if (!wrkLocSyncService.delete(new EntityWrapper<WrkLocSync>().eq("matnr", executeData.getMatnr()))) {
+ log.info("搴撳瓨鍚屾鍒犻櫎浠诲姟澶辫触,浠诲姟matnr=" + executeData.getMatnr() + "鏃堕棿=" + new Date());
+ }
+ } else {
+ // 澶辫触鍚庡皢浠诲姟鐘舵�乻tate鏇存柊涓篘
+ executeData.setState("X");
+ executeData.setUpdateBy(getUserId());
+ executeData.setCreateTime(new Date());
+ if(!wrkLocSyncService.update(executeData, new EntityWrapper<WrkLocSync>().eq("matnr", executeData.getMatnr()))) {
+ log.info("搴撳瓨鍚屾鏇存柊浠诲姟澶辫触,浠诲姟matnr=" + executeData.getMatnr() + "鏃堕棿=" + new Date());
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/zy/cloud/wms/manager/entity/LocSum.java b/src/main/java/zy/cloud/wms/manager/entity/LocSum.java
new file mode 100644
index 0000000..df24e54
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/entity/LocSum.java
@@ -0,0 +1,21 @@
+package zy.cloud.wms.manager.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@TableName("asr_sumloc_view")
+@Data
+public class LocSum implements Serializable {
+ private String matnr;
+
+ private String maktx;
+
+ private Double anfme;
+
+ private String altme;
+
+ private String memo;
+}
diff --git a/src/main/java/zy/cloud/wms/manager/entity/WrkLocSync.java b/src/main/java/zy/cloud/wms/manager/entity/WrkLocSync.java
new file mode 100644
index 0000000..1224420
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/entity/WrkLocSync.java
@@ -0,0 +1,30 @@
+package zy.cloud.wms.manager.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@TableName("asr_wrk_loc_sync")
+@Data
+public class WrkLocSync implements Serializable {
+ private String matnr;
+
+ private Double qty;
+
+ private String state;
+
+ @TableField("create_time")
+ private Date createTime;
+
+ @TableField("create_by")
+ private Long createBy;
+
+ @TableField("update_time")
+ private Date updateTime;
+
+ @TableField("update_by")
+ private Long updateBy;
+}
diff --git a/src/main/java/zy/cloud/wms/manager/mapper/LocSyncMapper.java b/src/main/java/zy/cloud/wms/manager/mapper/LocSyncMapper.java
new file mode 100644
index 0000000..7bf2271
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/mapper/LocSyncMapper.java
@@ -0,0 +1,16 @@
+package zy.cloud.wms.manager.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import zy.cloud.wms.manager.entity.LocSum;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface LocSyncMapper extends BaseMapper<LocSum> {
+ List<LocSum> queryLocSum();
+
+ Integer getSyncLocWrkCount();
+}
diff --git a/src/main/java/zy/cloud/wms/manager/mapper/WrkLocSyncMapper.java b/src/main/java/zy/cloud/wms/manager/mapper/WrkLocSyncMapper.java
new file mode 100644
index 0000000..023ae58
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/mapper/WrkLocSyncMapper.java
@@ -0,0 +1,18 @@
+package zy.cloud.wms.manager.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import zy.cloud.wms.manager.entity.WrkLocSync;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface WrkLocSyncMapper extends BaseMapper<WrkLocSync> {
+ Integer getSyncLocWrkCount();
+
+ Integer insertWrkLocSync(List<WrkLocSync> list);
+
+ Boolean clearWrkLocSync();
+}
diff --git a/src/main/java/zy/cloud/wms/manager/service/LocSyncService.java b/src/main/java/zy/cloud/wms/manager/service/LocSyncService.java
new file mode 100644
index 0000000..0a1ea76
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/service/LocSyncService.java
@@ -0,0 +1,12 @@
+package zy.cloud.wms.manager.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import zy.cloud.wms.manager.entity.LocSum;
+
+import java.util.List;
+
+public interface LocSyncService extends IService<LocSum> {
+ List<LocSum> queryLocSum();
+
+ Integer getSyncLocWrkCount();
+}
diff --git a/src/main/java/zy/cloud/wms/manager/service/WrkLocSyncService.java b/src/main/java/zy/cloud/wms/manager/service/WrkLocSyncService.java
new file mode 100644
index 0000000..510e721
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/service/WrkLocSyncService.java
@@ -0,0 +1,13 @@
+package zy.cloud.wms.manager.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import zy.cloud.wms.manager.entity.WrkLocSync;
+import java.util.List;
+
+public interface WrkLocSyncService extends IService<WrkLocSync> {
+ Integer getSyncLocWrkCount();
+
+ Integer insertWrkLocSync(List<WrkLocSync> list);
+
+ Boolean clearWrkLocSync();
+}
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/LocSyncServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/LocSyncServiceImpl.java
new file mode 100644
index 0000000..0c0975b
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/LocSyncServiceImpl.java
@@ -0,0 +1,23 @@
+package zy.cloud.wms.manager.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import zy.cloud.wms.manager.mapper.LocSyncMapper;
+import org.springframework.stereotype.Service;
+import zy.cloud.wms.manager.entity.LocSum;
+import zy.cloud.wms.manager.service.LocSyncService;
+
+import java.util.List;
+
+@Service("locSyncService")
+public class LocSyncServiceImpl extends ServiceImpl<LocSyncMapper, LocSum> implements LocSyncService{
+
+ @Override
+ public List<LocSum> queryLocSum() {
+ return this.baseMapper.queryLocSum();
+ }
+
+ @Override
+ public Integer getSyncLocWrkCount() {
+ return this.baseMapper.getSyncLocWrkCount();
+ }
+}
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WrkLocSyncServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WrkLocSyncServiceImpl.java
new file mode 100644
index 0000000..311449b
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/WrkLocSyncServiceImpl.java
@@ -0,0 +1,27 @@
+package zy.cloud.wms.manager.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import zy.cloud.wms.manager.entity.WrkLocSync;
+import zy.cloud.wms.manager.mapper.WrkLocSyncMapper;
+import zy.cloud.wms.manager.service.WrkLocSyncService;
+
+import java.util.List;
+
+@Service("wrkLocSyncService")
+public class WrkLocSyncServiceImpl extends ServiceImpl<WrkLocSyncMapper, WrkLocSync> implements WrkLocSyncService {
+ @Override
+ public Integer getSyncLocWrkCount() {
+ return this.baseMapper.getSyncLocWrkCount();
+ }
+
+ @Override
+ public Integer insertWrkLocSync(List<WrkLocSync> list) {
+ return this.baseMapper.insertWrkLocSync(list);
+ }
+
+ @Override
+ public Boolean clearWrkLocSync() {
+ return this.baseMapper.clearWrkLocSync();
+ }
+}
diff --git a/src/main/resources/mapper/LocSyncMapper.xml b/src/main/resources/mapper/LocSyncMapper.xml
new file mode 100644
index 0000000..f88e34c
--- /dev/null
+++ b/src/main/resources/mapper/LocSyncMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="zy.cloud.wms.manager.mapper.LocSyncMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="zy.cloud.wms.manager.entity.LocSum">
+ <result column="matnr" property="matnr" />
+ <result column="maktx" property="maktx" />
+ <result column="anfme" property="anfme" />
+ <result column="altme" property="altme" />
+ <result column="memo" property="memo" />
+ </resultMap>
+
+ <select id="queryLocSum" resultMap="BaseResultMap">
+ select matnr,maktx,sum(anfme) as anfme,altme, memo from asr_sumloc_view group by matnr,maktx,altme,memo
+ </select>
+
+ <select id="getSyncLocWrkCount" resultType="integer">
+ select count(*) from asr_wrk_loc_sync;
+ </select>
+
+
+</mapper>
diff --git a/src/main/resources/mapper/WrkLocSyncMapper.xml b/src/main/resources/mapper/WrkLocSyncMapper.xml
new file mode 100644
index 0000000..ebf33cb
--- /dev/null
+++ b/src/main/resources/mapper/WrkLocSyncMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="zy.cloud.wms.manager.mapper.WrkLocSyncMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="zy.cloud.wms.manager.entity.WrkLocSync">
+ <result column="matnr" property="matnr" />
+ <result column="qty" property="qty" />
+ <result column="state" property="state" />
+ <result column="create_by" property="createBy" />
+ <result column="create_time" property="createTime" />
+ <result column="update_by" property="updateBy" />
+ <result column="update_time" property="updateTime" />
+ </resultMap>
+
+ <select id="getSyncLocWrkCount" resultType="integer">
+ select count(*) from asr_wrk_loc_sync;
+ </select>
+
+ <insert id="insertWrkLocSync">
+ BEGIN
+ <foreach collection="list" item="item" index="index">
+ INSERT INTO asr_wrk_loc_sync (matnr, qty, state, create_time, create_by, update_time, update_by)
+ VALUES (#{item.matnr,jdbcType=VARCHAR}, #{item.qty,jdbcType=DECIMAL}, 'N',
+ #{item.createTime,jdbcType=TIMESTAMP},#{item.createBy,jdbcType=DECIMAL},
+ #{item.updateTime,jdbcType=TIMESTAMP}, #{item.updateBy,jdbcType=DECIMAL})
+ </foreach>
+ END;
+ </insert>
+
+ <delete id="clearWrkLocSync">
+ DELETE FROM asr_wrk_loc_sync
+ </delete>
+</mapper>
diff --git a/src/main/webapp/static/js/locSync/locSync.js b/src/main/webapp/static/js/locSync/locSync.js
new file mode 100644
index 0000000..00e4f42
--- /dev/null
+++ b/src/main/webapp/static/js/locSync/locSync.js
@@ -0,0 +1,140 @@
+var syncTableData = [];
+
+layui.use(['table', 'laydate', 'form'], function () {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#locSum',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl + '/locSync/queryLocSum',
+ page: true,
+ // limit: 16,
+ // limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {field: 'matnr', align: 'center', title: '鐗╂枡缂栫爜', width: 200}
+ , {field: 'maktx', align: 'center', title: '鐗╂枡鍚嶇О'}
+ , {field: 'anfme', align: 'center', title: '鎬绘暟閲廩骞充粨+绔嬪簱]', width: 180}
+ , {field: 'altme', align: 'center', title: '鍗曚綅', width: 80}
+ , {field: 'memo', align: 'center', title: '澶囨敞'}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ }
+ pageCurr = curr;
+ limit();
+ syncTableData = res.data;
+ }
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(locSum)', function (obj) {
+ switch (obj.event) {
+ case 'btnSync':
+ $.ajax({
+ url: baseUrl + "/locSync/syncLocWrkCount",
+ headers: {'token': localStorage.getItem('token')},
+ data: {},
+ method: 'POST',
+ traditional: true,
+ success: function (res) {
+ if (res.code === 200) {
+ var msg = '';
+ if (res.data == 0) {
+ msg = '纭畾瑕佸悓姝ュ簱瀛樻暟鎹悧?'
+ } else {
+ msg = '鍚屾浠诲姟姝e湪杩涜锛岀‘瀹氳涓骞堕噸鏂板悓姝ュ悧?'
+ }
+ layer.confirm(msg, {
+ shadeClose: true
+ , btn: ['纭畾']
+ }, function () {
+ var paramList = [];
+ syncTableData.map(function (e) {
+ paramList.push({
+ matnr: e.matnr,
+ qty: e.anfme,
+ });
+ });
+ var param = {
+ 'list': paramList,
+ };
+ if (res.data > 0) {
+ // 娓呯┖鍚屾涓婁紶娓呭崟鏁版嵁,鍐嶈繘琛屾彃鍏ユ暟鎹�
+ $.ajax({
+ url: baseUrl + "/locSync/updateWrklocSync",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200) {
+ layer.msg("搴撳瓨鍚屾涓紒");
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ } else {
+ // 璋冪敤鍚屾涓婁紶娓呭崟鏁版嵁鎻掑叆鎺ュ彛
+ $.ajax({
+ url: baseUrl + "/locSync/insertWrklocSync",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200) {
+ layer.msg("搴撳瓨鍚屾涓紒");
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ }
+ layer.closeAll();
+ }
+ );
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ break;
+ default:
+ break;
+ }
+ });
+});
\ No newline at end of file
diff --git a/src/main/webapp/views/locSync/locSync.html b/src/main/webapp/views/locSync/locSync.html
new file mode 100644
index 0000000..4e8907d
--- /dev/null
+++ b/src/main/webapp/views/locSync/locSync.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <style>
+
+ </style>
+</head>
+<body>
+
+<div class="layui-fluid">
+ <!-- 琛ㄦ牸 -->
+ <div class="layui-form">
+ <table class="layui-hide" id="locSum" lay-filter="locSum"></table>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn " id="btn-sync" lay-event="btnSync" style="margin-left: 10px">鍚屾搴撳瓨</button>
+ </div>
+</script>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/locSync/locSync.js" charset="utf-8"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/version/v1.0.2/change_log b/version/v1.0.2/change_log
new file mode 100644
index 0000000..2ff75a9
--- /dev/null
+++ b/version/v1.0.2/change_log
@@ -0,0 +1,38 @@
+// 鏂板缓瑙嗗浘 asr_sumloc_view
+select matnr,maktx,anfme, altme, memo from asr_loc_detl
+union all
+select matnr,maktx,anfme, unit as altme, memo from man_loc_detl
+
+// 鏂板琛ㄧ粨鏋�
+SET ANSI_NULLS ON
+GO
+
+SET QUOTED_IDENTIFIER ON
+GO
+
+SET ANSI_PADDING ON
+GO
+
+CREATE TABLE [dbo].[asr_wrk_loc_sync](
+ [matnr] [varchar](255) NOT NULL,
+ [qty] [decimal](24, 9) NOT NULL,
+ [state] [varchar](10) NULL,
+ [create_time] [datetime] NULL,
+ [create_by] [bigint] NULL,
+ [update_time] [datetime] NULL,
+ [update_by] [bigint] NULL
+) ON [PRIMARY]
+
+GO
+
+SET ANSI_PADDING OFF
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'鐗╂枡缂栫爜' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'asr_wrk_loc_sync', @level2type=N'COLUMN',@level2name=N'matnr'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'鏁伴噺' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'asr_wrk_loc_sync', @level2type=N'COLUMN',@level2name=N'qty'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'鐘舵��(N鏈笂浼�,X涓婁紶澶辫触)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'asr_wrk_loc_sync', @level2type=N'COLUMN',@level2name=N'state'
+GO
\ No newline at end of file
--
Gitblit v1.9.1