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