From 5e4ec25a627a4c0c008ccdfa88e3b5c9a30c9135 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 07 一月 2025 13:19:09 +0800
Subject: [PATCH] 库存移动流水记录
---
src/main/java/com/zy/asrs/entity/WrkDetlLog.java | 5
src/main/java/com/zy/asrs/entity/InventoryFlowDto.java | 97 ++++++++
src/main/resources/mapper/WrkMastLogMapper.xml | 55 ++++
src/main/java/com/zy/asrs/controller/LocMastController.java | 49 ++++
src/main/webapp/views/inventoryFlow/inventoryFlow.html | 88 +++++++
src/main/webapp/static/js/inventoryFlow/inventoryFlow.js | 204 +++++++++++++++++
src/main/resources/mapper/WrkMastMapper.xml | 2
src/main/java/com/zy/asrs/controller/WrkMastLogController.java | 23 +
src/main/webapp/views/pakStore/locDetlQuery.html | 22 +
src/main/java/com/zy/asrs/service/WrkMastLogService.java | 7
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 98 ++++++++
src/main/java/com/zy/asrs/mapper/WrkMastLogMapper.java | 14 +
src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java | 15 +
src/main/webapp/static/js/common.js | 2
14 files changed, 678 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 757a36f..c914c92 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -17,6 +17,7 @@
import com.zy.asrs.service.*;
import com.zy.common.entity.Parameter;
import com.zy.common.model.Shelves;
+import com.zy.common.service.CommonService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -42,6 +43,15 @@
@Resource
private LocDetlMapper locDetlMapper;
+
+ @Resource
+ private CommonService commonService;
+
+ @Resource
+ private WrkMastLogService wrkMastLogService;
+
+ @Resource
+ private WrkDetlLogService wrkDetlLogService;
@RequestMapping(value = "/locMast/init/pwd")
public R locMastInitPwd(@RequestParam(required = false) String pwd) {
@@ -134,6 +144,31 @@
if (oldLocMast.getLocSts().equals("R") || oldLocMast.getLocSts().equals("F") || oldLocMast.getLocSts().equals("S")) {
if (locMast.getLocSts().equals("O") || locMast.getLocSts().equals("D")) {
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ // 娣诲姞鍘嗗彶宸ヤ綔涓绘。
+ WrkMastLog wrkMastLog = new WrkMastLog();
+ wrkMastLog.setWrkNo(commonService.getWorkNo(3));
+ wrkMastLog.setIoTime(now);
+ wrkMastLog.setWrkSts(5);
+ wrkMastLog.setIoType(19);
+ wrkMastLog.setIoPri(13D); // 浼樺厛绾�
+ wrkMastLog.setCrnNo(locMast.getCrnNo());
+ wrkMastLog.setSourceLocNo(locMast.getLocNo());
+ wrkMastLog.setLocNo(locMast.getLocNo());
+ wrkMastLog.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+ wrkMastLog.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMastLog.setPicking("N"); // 鎷f枡
+ wrkMastLog.setExitMk("N"); // 閫�鍑�
+ wrkMastLog.setEmptyMk("N"); // 绌烘澘
+ wrkMastLog.setLinkMis("Y");
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMastLog.setAppeTime(now);
+ wrkMastLog.setModiTime(now);
+ wrkMastLog.setAppeUser(getUserId());
+ wrkMastLog.setModiUser(getUserId());
+ boolean res = wrkMastLogService.insert(wrkMastLog);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
for (LocDetl locDetl : locDetls) {
// 淇濆瓨璋冩暣璁板綍
AdjDetl adjDetl = new AdjDetl();
@@ -149,6 +184,20 @@
if (!adjDetlService.insert(adjDetl)) {
throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
+
+ // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
+ WrkDetlLog wrkDetl = new WrkDetlLog();
+ wrkDetl.sync(locDetl);
+ wrkDetl.setWrkNo(wrkMastLog.getWrkNo());
+ wrkDetl.setIoTime(wrkMastLog.getIoTime());
+ wrkDetl.setAnfme(0.0);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkMastLog.setAppeUser(getUserId());
+ wrkMastLog.setModiUser(getUserId());
+ if (!wrkDetlLogService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
}
if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()))) {
throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
diff --git a/src/main/java/com/zy/asrs/controller/WrkMastLogController.java b/src/main/java/com/zy/asrs/controller/WrkMastLogController.java
index 7e0bec4..c16a7c2 100644
--- a/src/main/java/com/zy/asrs/controller/WrkMastLogController.java
+++ b/src/main/java/com/zy/asrs/controller/WrkMastLogController.java
@@ -56,6 +56,29 @@
return R.ok(wrkMastLogService.selectPage(new Page<>(curr, limit), wrapper));
}
+ @RequestMapping(value = "/inventoryFlow/list/auth")
+ @ManagerAuth(memo = "搴撳瓨绉诲姩娴佹按璁板綍")
+ public R inventoryFlowList(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ if (Cools.isEmpty(param.get("io_time"))) {
+ param.put("startTime","");
+ param.put("endTime","");
+ } else {
+ String ioTime = (String) param.get("io_time");
+ if (ioTime.contains(RANGE_TIME_LINK)){
+ String[] dates = ioTime.split(RANGE_TIME_LINK);
+ param.put("startTime",dates[0]);
+ param.put("endTime",dates[1]);
+ }
+ }
+ return wrkMastLogService.inventoryFlowList(curr,limit,param);
+ }
+
private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
for (Map.Entry<String, Object> entry : map.entrySet()){
String val = String.valueOf(entry.getValue());
diff --git a/src/main/java/com/zy/asrs/entity/InventoryFlowDto.java b/src/main/java/com/zy/asrs/entity/InventoryFlowDto.java
new file mode 100644
index 0000000..1324500
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/InventoryFlowDto.java
@@ -0,0 +1,97 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.service.BasWrkIotypeService;
+import com.zy.asrs.service.BasWrkStatusService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author pang.jiabao
+ * @description 搴撳瓨绉诲姩娴佹按dto
+ * @createDate 2025/1/3 13:59
+ */
+@Data
+public class InventoryFlowDto {
+
+ private Integer wrkNo;
+ private Date ioTime;
+ private Integer ioType;
+ private Integer wrkSts;
+ private String sourceLocNo;
+ private String locNo;
+ private String orderNo;
+ private String matnr;
+ private String maktx;
+ private String batch;
+ private Double anfme;
+ private String zpallet;
+ private Long modiUser;
+ private Date modiTime;
+
+ public String getIoType$() {
+ BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class);
+ BasWrkIotype basWrkIotype = service.selectById(this.ioType);
+ if (!Cools.isEmpty(basWrkIotype)) {
+ return String.valueOf(basWrkIotype.getIoDesc());
+ }
+ return null;
+ }
+
+ public String getWrkSts$() {
+ BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class);
+ BasWrkStatus basWrkStatus = service.selectById(this.wrkSts);
+ if (!Cools.isEmpty(basWrkStatus)) {
+ return String.valueOf(basWrkStatus.getWrkDesc());
+ }
+ return null;
+ }
+
+ public String getLocNo$() {
+ LocMastService service = SpringUtils.getBean(LocMastService.class);
+ LocMast locMast = service.selectById(this.locNo);
+ if (!Cools.isEmpty(locMast)) {
+ return String.valueOf(locMast.getLocNo());
+ }
+ return null;
+ }
+
+ public String getSourceLocNo$() {
+ LocMastService service = SpringUtils.getBean(LocMastService.class);
+ LocMast locMast = service.selectById(this.sourceLocNo);
+ if (!Cools.isEmpty(locMast)) {
+ return String.valueOf(locMast.getLocNo());
+ }
+ return null;
+ }
+
+ public String getIoTime$() {
+ if (Cools.isEmpty(this.ioTime)) {
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
+ }
+
+ public String getModiTime$() {
+ if (Cools.isEmpty(this.modiTime)) {
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+ }
+
+ public String getModiUser$() {
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.modiUser);
+ if (!Cools.isEmpty(user)) {
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
index 62943b2..6fa1590 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotations.TableName;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.common.utils.Synchro;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
@@ -397,5 +398,7 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
}
-
+ public void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastLogMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastLogMapper.java
index c229b41..27eaca7 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastLogMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastLogMapper.java
@@ -1,10 +1,15 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.InventoryFlowDto;
import com.zy.asrs.entity.WrkMastLog;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
@Mapper
@Repository
@@ -13,4 +18,13 @@
@Insert("insert into asr_wrk_mast_log select * from asr_wrk_mast where wrk_no=#{workNo}")
int save(Integer workNo);
+ /**
+ * 鏌ヨ搴撳瓨绉诲姩娴佹按璁板綍
+ */
+ List<InventoryFlowDto> inventoryFlowList(@Param("curr") Integer curr,@Param("limit") Integer limit, @Param("param") Map<String, Object> param);
+
+ /**
+ * 缁熻搴撳瓨绉诲姩娴佹按璁板綍鏁�
+ */
+ int inventoryFlowListCount(@Param("param") Map<String, Object> param);
}
diff --git a/src/main/java/com/zy/asrs/service/WrkMastLogService.java b/src/main/java/com/zy/asrs/service/WrkMastLogService.java
index 78ea016..24eaef0 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastLogService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastLogService.java
@@ -1,10 +1,17 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
+import com.core.common.R;
import com.zy.asrs.entity.WrkMastLog;
+
+import java.util.Map;
public interface WrkMastLogService extends IService<WrkMastLog> {
boolean save(Integer workNo);
+ /**
+ * 鏌ヨ搴撳瓨绉诲姩娴佹按璁板綍
+ */
+ R inventoryFlowList(Integer curr, Integer limit, Map<String, Object> param);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 64d70f8..7d91a2d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -852,6 +852,31 @@
List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
+ // 娣诲姞鍘嗗彶宸ヤ綔涓绘。
+ WrkMastLog wrkMast = new WrkMastLog();
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(5);
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locMast.getLocNo());
+ wrkMast.setLocNo(locMast.getLocNo());
+ wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ wrkMast.setAppeUser(userId);
+ wrkMast.setModiUser(userId);
+
+ // 澧炲垹鏀瑰彧鍒涘缓涓�娆″伐浣滀富妗�
+ boolean updateFlag = true;
+ boolean deleteFlag = true;
+ boolean addFlag = true;
+
// 淇敼鏁伴噺
Iterator<LocDetl> iterator = locDetls.iterator();
while (iterator.hasNext()) {
@@ -881,6 +906,30 @@
adjDetl.setAppeTime(now);
adjDetl.setAppeUser(userId);
adjDetlService.save(adjDetl, userId);
+
+ if (updateFlag) {
+ wrkMast.setWrkNo(commonService.getWorkNo(3));
+ wrkMast.setIoType(23);
+ boolean res = wrkMastLogService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("搴撳瓨璋冩暣-淇敼 淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ updateFlag = false;
+ }
+
+ // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
+ WrkDetlLog wrkDetl = new WrkDetlLog();
+ wrkDetl.sync(locDetl);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAnfme(adjust.getCount());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkMast.setAppeUser(userId);
+ wrkMast.setModiUser(userId);
+ if (!wrkDetlLogService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
}
iterator.remove();
iterator1.remove();
@@ -907,6 +956,30 @@
adjDetl.setAppeTime(now);
adjDetl.setAppeUser(userId);
adjDetlService.save(adjDetl, userId);
+
+ if (deleteFlag) {
+ wrkMast.setWrkNo(commonService.getWorkNo(3));
+ wrkMast.setIoType(22);
+ boolean res = wrkMastLogService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("搴撳瓨璋冩暣-鍒犻櫎 淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ deleteFlag = false;
+ }
+
+ // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
+ WrkDetlLog wrkDetl = new WrkDetlLog();
+ wrkDetl.sync(locDetl);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAnfme(0.0);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkMast.setAppeUser(userId);
+ wrkMast.setModiUser(userId);
+ if (!wrkDetlLogService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
}
// 娣诲姞搴撳瓨
@@ -917,6 +990,7 @@
locDetl.sync(mat);
locDetl.setBatch(adjust.getBatch());
locDetl.setLocNo(locMast.getLocNo());
+ locDetl.setZpallet(locMast.getBarcode());
locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
locDetl.setModiTime(now);
@@ -937,6 +1011,30 @@
adjDetl.setAppeTime(now);
adjDetl.setAppeUser(userId);
adjDetlService.save(adjDetl, userId);
+
+ if (addFlag) {
+ wrkMast.setWrkNo(commonService.getWorkNo(3));
+ wrkMast.setIoType(21);
+ boolean res = wrkMastLogService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("搴撳瓨璋冩暣-鏂板 淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ addFlag = false;
+ }
+
+ // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
+ WrkDetlLog wrkDetl = new WrkDetlLog();
+ wrkDetl.sync(locDetl);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAnfme(adjust.getCount());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkMast.setAppeUser(userId);
+ wrkMast.setModiUser(userId);
+ if (!wrkDetlLogService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
}
// 淇敼搴撲綅鐘舵��
int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
index bd51e68..149724b 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
@@ -1,10 +1,15 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.R;
+import com.zy.asrs.entity.InventoryFlowDto;
import com.zy.asrs.entity.WrkMastLog;
import com.zy.asrs.mapper.WrkMastLogMapper;
import com.zy.asrs.service.WrkMastLogService;
import org.springframework.stereotype.Service;
+
+import java.util.Map;
@Service("wrkMastLogService")
public class WrkMastLogServiceImpl extends ServiceImpl<WrkMastLogMapper, WrkMastLog> implements WrkMastLogService {
@@ -14,4 +19,14 @@
return this.baseMapper.save(workNo) > 0;
}
+ @Override
+ public R inventoryFlowList(Integer curr, Integer limit, Map<String, Object> param) {
+ Page<InventoryFlowDto> page = new Page<>();
+ page.setCurrent(curr);
+ page.setSize(limit);
+ page.setTotal(this.baseMapper.inventoryFlowListCount(param));
+ page.setRecords(this.baseMapper.inventoryFlowList(curr, limit, param));
+ return R.ok(page);
+ }
+
}
diff --git a/src/main/resources/mapper/WrkMastLogMapper.xml b/src/main/resources/mapper/WrkMastLogMapper.xml
index cbe6570..8086afb 100644
--- a/src/main/resources/mapper/WrkMastLogMapper.xml
+++ b/src/main/resources/mapper/WrkMastLogMapper.xml
@@ -62,5 +62,60 @@
<result column="pre_have" property="preHave" />
<result column="take_none" property="takeNone" />
</resultMap>
+ <sql id="queryWhere">
+ <where>
+ <if test="param.wrk_no != null and param.wrk_no != ''"> and a.wrk_no = #{param.wrk_no}</if>
+ <if test="param.io_type != null and param.io_type != ''"> and a.io_type = #{param.io_type}</if>
+ <if test="param.matnr != null and param.matnr != ''"> and b.matnr = #{param.matnr}</if>
+ <if test="param.maktx != null and param.maktx != ''"> and b.maktx = #{param.maktx}</if>
+ <if test="param.batch != null and param.batch != ''"> and b.batch = #{param.batch}</if>
+ <if test="param.zpallet != null and param.zpallet != ''"> and a.barcode = #{param.zpallet}</if>
+ <if test="param.loc_no != null and param.loc_no != ''"> and (a.loc_no = #{param.loc_no} or a.source_loc_no = #{param.loc_no})</if>
+ <if test="param.startTime != null and param.startTime != ''"> and a.io_time >= #{param.startTime}</if>
+ <if test="param.endTime != null and param.endTime != ''"> and a.io_time <= #{param.endTime}</if>
+ </where>
+ </sql>
+ <select id="inventoryFlowList" resultType="com.zy.asrs.entity.InventoryFlowDto">
+ select
+ *
+ from
+ (
+ select
+ ROW_NUMBER() over (order by a.modi_time desc) id,
+ a.wrk_no wrkNo,
+ a.io_type ioType,
+ a.io_time ioTime,
+ a.wrk_sts wrkSts,
+ a.source_loc_no sourceLocNo,
+ a.loc_no locNo,
+ a.barcode zpallet,
+ b.matnr ,
+ b.maktx ,
+ b.order_no orderNo,
+ b.batch ,
+ b.anfme ,
+ b.modi_time modiTime,
+ b.modi_user modiUser
+ from
+ asr_wrk_mast_log a
+ inner join asr_wrk_detl_log b on
+ a.wrk_no = b.wrk_no
+ and a.io_time = b.io_time
+ and a.wrk_sts in(5, 15)
+ <include refid="queryWhere"></include>
+ ) c
+ where
+ c.id BETWEEN (#{curr} - 1) * (#{limit} + 1) and #{curr} * #{limit}
+ </select>
+ <select id="inventoryFlowListCount" resultType="java.lang.Integer">
+ select count(*)
+ from
+ asr_wrk_mast_log a
+ inner join asr_wrk_detl_log b on
+ a.wrk_no = b.wrk_no
+ and a.io_time = b.io_time
+ and a.wrk_sts in(5, 15)
+ <include refid="queryWhere"></include>
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index b99fd2d..83c4cce 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -70,7 +70,7 @@
select * from asr_wrk_mast
where wrk_sts=5
or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
- or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
+ or (wrk_sts=15 and dateadd(mi,3,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
order by io_time,wrk_no asc
</select>
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 555ddf6..90a240f 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -255,7 +255,7 @@
,{field: 'source$', align: 'center',title: '鍒惰喘', hide: true}
,{field: 'check$', align: 'center',title: '瑕佹眰妫�楠�', hide: true}
,{field: 'danger$', align: 'center',title: '鍗遍櫓鍝�', hide: true}
- ,{field: 'frozen$', align: 'center',title: '鍐荤粨鍚�',
+ ,{field: 'frozen$', align: 'center',title: '鍐荤粨鍚�',hide: true,
templet: function(d) {
// 鏍规嵁鏉′欢鍒ゆ柇瀛椾綋棰滆壊
if (d.frozen$ === '宸插喕缁�') {
diff --git a/src/main/webapp/static/js/inventoryFlow/inventoryFlow.js b/src/main/webapp/static/js/inventoryFlow/inventoryFlow.js
new file mode 100644
index 0000000..d14a330
--- /dev/null
+++ b/src/main/webapp/static/js/inventoryFlow/inventoryFlow.js
@@ -0,0 +1,204 @@
+var pageCurr;
+var wrkNo;
+var ioTime;
+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: '#wrkMastLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/inventoryFlow/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�', style: 'font-weight: bold',event: 'wrkNo'}
+ ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿', width:160}
+ ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160}
+ ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160}
+ ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
+ ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+ ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿'}
+ ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿'}
+ ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'}
+ ,{field: 'batch', align: 'center',title: '鎵瑰彿'}
+ ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', 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.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(wrkMastLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(wrkMastLog)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'wrkMastLog': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/wrkMastLog/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/views/inventoryFlow/inventoryFlow.html b/src/main/webapp/views/inventoryFlow/inventoryFlow.html
new file mode 100644
index 0000000..d8c705c
--- /dev/null
+++ b/src/main/webapp/views/inventoryFlow/inventoryFlow.html
@@ -0,0 +1,88 @@
+<!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">
+</head>
+<body>
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="wrk_no" placeholder="宸ヤ綔鍙�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="ioType" class="layui-input" name="io_type" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鍏ュ嚭搴撶被鍨�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="maktx" placeholder="鍟嗗搧鍚嶇О" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="batch" placeholder="鎵规" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鐮�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ </div>
+ </div>
+ <!-- 鏃ユ湡鑼冨洿 -->
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="io_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="wrkMastLog" lay-filter="wrkMastLog"></table>
+</div>
+
+<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/inventoryFlow/inventoryFlow.js" charset="utf-8"></script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/pakStore/locDetlQuery.html b/src/main/webapp/views/pakStore/locDetlQuery.html
index 5086410..51186ed 100644
--- a/src/main/webapp/views/pakStore/locDetlQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlQuery.html
@@ -191,6 +191,28 @@
layer.msg("鍐荤粨鐨勫簱瀛樹笉鍏佽鍑哄簱锛�");
return;
}
+
+ let locNos = [];
+ data.forEach(function(elem) {
+ locNos.push(elem.locNo);
+ });
+ $.ajax({
+ url: baseUrl+"/locDetl/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {locNos:locNos},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200) {
+ data = res.data;
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+
parent.addTableData(data);
break;
}
--
Gitblit v1.9.1