From 0483721e4f1e1c725d2f0f5e94e2e99ec2124e44 Mon Sep 17 00:00:00 2001 From: weizhiqiang <598748873@qq.com> Date: Tue, 22 Oct 2019 09:55:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AC=E8=B4=A6=E5=8D=95=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skyeye/controller/TransferController.java | 94 ++++++ .../main/java/com/skyeye/dao/TransferDao.java | 39 +++ .../com/skyeye/service/TransferService.java | 25 ++ .../service/impl/TransferServiceImpl.java | 240 ++++++++++++++++ .../resources/dbmapper/erp/TransferMapper.xml | 167 +++++++++++ .../src/main/resources/mapping/erp.xml | 36 +++ .../template/js/transfer/transferadd.js | 236 ++++++++++++++++ .../template/js/transfer/transferedit.js | 267 ++++++++++++++++++ .../template/js/transfer/transferinfo.js | 28 ++ .../template/js/transfer/transferlist.js | 171 +++++++++++ .../template/tpl/transfer/transferadd.html | 98 +++++++ .../template/tpl/transfer/transferedit.html | 105 +++++++ .../template/tpl/transfer/transferinfo.html | 93 ++++++ .../template/tpl/transfer/transferlist.html | 53 ++++ 14 files changed, 1652 insertions(+) create mode 100644 erp-modular/src/main/java/com/skyeye/controller/TransferController.java create mode 100644 erp-modular/src/main/java/com/skyeye/dao/TransferDao.java create mode 100644 erp-modular/src/main/java/com/skyeye/service/TransferService.java create mode 100644 erp-modular/src/main/java/com/skyeye/service/impl/TransferServiceImpl.java create mode 100644 erp-modular/src/main/resources/dbmapper/erp/TransferMapper.xml create mode 100644 erp-modular/src/main/resources/template/js/transfer/transferadd.js create mode 100644 erp-modular/src/main/resources/template/js/transfer/transferedit.js create mode 100644 erp-modular/src/main/resources/template/js/transfer/transferinfo.js create mode 100644 erp-modular/src/main/resources/template/js/transfer/transferlist.js create mode 100644 erp-modular/src/main/resources/template/tpl/transfer/transferadd.html create mode 100644 erp-modular/src/main/resources/template/tpl/transfer/transferedit.html create mode 100644 erp-modular/src/main/resources/template/tpl/transfer/transferinfo.html create mode 100644 erp-modular/src/main/resources/template/tpl/transfer/transferlist.html diff --git a/erp-modular/src/main/java/com/skyeye/controller/TransferController.java b/erp-modular/src/main/java/com/skyeye/controller/TransferController.java new file mode 100644 index 00000000..36323a41 --- /dev/null +++ b/erp-modular/src/main/java/com/skyeye/controller/TransferController.java @@ -0,0 +1,94 @@ +package com.skyeye.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.service.TransferService; + +/** + * @Author 卫志强 + * @Description 转账单 + * @Date 2019/10/20 10:22 + */ +@Controller +public class TransferController { + + @Autowired + private TransferService transferService; + + /** + * 查询转账单列表信息 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @RequestMapping("/post/TransferController/queryTransferByList") + @ResponseBody + public void queryTransferByList(InputObject inputObject, OutputObject outputObject) throws Exception{ + transferService.queryTransferByList(inputObject, outputObject); + } + + /** + * 添加转账单 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @RequestMapping("/post/TransferController/insertTransfer") + @ResponseBody + public void insertTransfer(InputObject inputObject, OutputObject outputObject) throws Exception{ + transferService.insertTransfer(inputObject, outputObject); + } + + /** + * 查询转账单用于数据回显 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @RequestMapping("/post/TransferController/queryTransferToEditById") + @ResponseBody + public void queryTransferToEditById(InputObject inputObject, OutputObject outputObject) throws Exception{ + transferService.queryTransferToEditById(inputObject, outputObject); + } + + /** + * 编辑转账单信息 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @RequestMapping("/post/TransferController/editTransferById") + @ResponseBody + public void editTransferById(InputObject inputObject, OutputObject outputObject) throws Exception{ + transferService.editTransferById(inputObject, outputObject); + } + + /** + * 删除转账单信息 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @RequestMapping("/post/TransferController/deleteTransferById") + @ResponseBody + public void deleteTransferById(InputObject inputObject, OutputObject outputObject) throws Exception{ + transferService.deleteTransferById(inputObject, outputObject); + } + + /** + * 查看转账单详情 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @RequestMapping("/post/TransferController/queryTransferByDetail") + @ResponseBody + public void queryTransferByDetail(InputObject inputObject, OutputObject outputObject) throws Exception{ + transferService.queryTransferByDetail(inputObject, outputObject); + } +} diff --git a/erp-modular/src/main/java/com/skyeye/dao/TransferDao.java b/erp-modular/src/main/java/com/skyeye/dao/TransferDao.java new file mode 100644 index 00000000..41c07da5 --- /dev/null +++ b/erp-modular/src/main/java/com/skyeye/dao/TransferDao.java @@ -0,0 +1,39 @@ +package com.skyeye.dao; + +import com.github.miemiedev.mybatis.paginator.domain.PageBounds; + +import java.util.List; +import java.util.Map; + +/** + * @Author: 卫志强 + * @Description: TODO + * @Date: 2019/10/20 10:23 + */ +public interface TransferDao { + + public List> queryTransferByList(Map params, PageBounds pageBounds) throws Exception; + + public int insertTransfer(Map params) throws Exception; + + public int insertTransferItem(List> entitys) throws Exception; + + public Map queryTransferToEditById(Map params) throws Exception; + + public int editTransferById(Map params) throws Exception; + + public int editTransferByDeleteFlag(Map params) throws Exception; + + public Map queryTransferDetailById(Map params) throws Exception; + + public List> queryTransferItemsDetailById(Map bean) throws Exception; + + public List> queryTransferItemsToEditById(Map params) throws Exception; + + public int editTransferItemsByDeleteFlag(Map params) throws Exception; + + public int deleteTransferItemById(Map params) throws Exception; + + public List> queryUserInfoById(Map bean) throws Exception; + +} diff --git a/erp-modular/src/main/java/com/skyeye/service/TransferService.java b/erp-modular/src/main/java/com/skyeye/service/TransferService.java new file mode 100644 index 00000000..248ebc44 --- /dev/null +++ b/erp-modular/src/main/java/com/skyeye/service/TransferService.java @@ -0,0 +1,25 @@ +package com.skyeye.service; + +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; + +/** + * @Author: 卫志强 + * @Description: TODO + * @Date: 2019/10/20 10:22 + */ +public interface TransferService { + + public void queryTransferByList(InputObject inputObject, OutputObject outputObject) throws Exception; + + public void insertTransfer(InputObject inputObject, OutputObject outputObject) throws Exception; + + public void queryTransferToEditById(InputObject inputObject, OutputObject outputObject) throws Exception; + + public void editTransferById(InputObject inputObject, OutputObject outputObject) throws Exception; + + public void deleteTransferById(InputObject inputObject, OutputObject outputObject) throws Exception; + + public void queryTransferByDetail(InputObject inputObject, OutputObject outputObject) throws Exception; + +} diff --git a/erp-modular/src/main/java/com/skyeye/service/impl/TransferServiceImpl.java b/erp-modular/src/main/java/com/skyeye/service/impl/TransferServiceImpl.java new file mode 100644 index 00000000..f088f729 --- /dev/null +++ b/erp-modular/src/main/java/com/skyeye/service/impl/TransferServiceImpl.java @@ -0,0 +1,240 @@ +package com.skyeye.service.impl; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.github.miemiedev.mybatis.paginator.domain.PageBounds; +import com.github.miemiedev.mybatis.paginator.domain.PageList; +import com.skyeye.common.object.InputObject; +import com.skyeye.common.object.OutputObject; +import com.skyeye.common.util.ToolUtil; +import com.skyeye.dao.TransferDao; +import com.skyeye.erp.util.ErpConstants; +import com.skyeye.erp.util.ErpOrderNum; +import com.skyeye.service.TransferService; + +import net.sf.json.JSONArray; + +/** + * @Author 卫志强 + * @Description TODO + * @Date 2019/10/20 10:23 + */ +@Service +public class TransferServiceImpl implements TransferService { + + @Autowired + private TransferDao transferDao; + + /** + * 查询转账单列表信息 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @Override + public void queryTransferByList(InputObject inputObject, OutputObject outputObject) throws Exception { + Map params = inputObject.getParams(); + params.put("userId", inputObject.getLogParams().get("id")); + List> beans = transferDao.queryTransferByList(params, + new PageBounds(Integer.parseInt(params.get("page").toString()), Integer.parseInt(params.get("limit").toString()))); + PageList> beansPageList = (PageList>) beans; + int total = beansPageList.getPaginator().getTotalCount(); + outputObject.setBeans(beans); + outputObject.settotal(total); + } + + /** + * 添加转账单 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @SuppressWarnings("unchecked") + @Override + @Transactional(value="transactionManager") + public void insertTransfer(InputObject inputObject, OutputObject outputObject) throws Exception { + Map params = inputObject.getParams(); + String initemStr = params.get("initemStr").toString(); + if(ToolUtil.isJson(initemStr)) { + //财务主表ID + String useId = ToolUtil.getSurFaceId(); + String userId = inputObject.getLogParams().get("id").toString(); + //处理数据 + JSONArray jArray = JSONArray.fromObject(initemStr); + //转账单中间转换对象,财务子表存储对象 + Map bean; + List> entitys = new ArrayList<>();//财务子表实体集合信息 + BigDecimal allPrice = new BigDecimal("0");//主单总价 + BigDecimal itemAllPrice = null;//子单对象 + for(int i = 0; i < jArray.size(); i++){ + bean = jArray.getJSONObject(i); + Map entity = new HashMap<>(); + //获取子项金额 + itemAllPrice = new BigDecimal(bean.get("initemMoney").toString()); + entity.put("id", ToolUtil.getSurFaceId()); + entity.put("headerId", useId); + entity.put("accountId", bean.get("accountId")); + entity.put("eachAmount", bean.get("initemMoney")); + entity.put("remark", bean.get("remark")); + entity.put("userId", userId); + entity.put("deleteFlag", 0); + entitys.add(entity); + //计算总金额 + allPrice = allPrice.add(itemAllPrice); + } + if(entitys.size() == 0){ + outputObject.setreturnMessage("请选择账户"); + return; + } + Map accountHead = new HashMap<>(); + ErpOrderNum erpOrderNum = new ErpOrderNum(); + String orderNum = erpOrderNum.getAccountOrderNumBySubType(userId, ErpConstants.AccountTheadSubType.TRANSFER_ORDER.getNum()); + accountHead.put("id", useId); + accountHead.put("type", ErpConstants.AccountTheadSubType.TRANSFER_ORDER.getNum());//转账单 + accountHead.put("billNo", orderNum); + accountHead.put("totalPrice", allPrice); + accountHead.put("userId", userId); + accountHead.put("accountId", params.get("accountId")); + accountHead.put("operTime", params.get("operTime")); + accountHead.put("handsPersonId", params.get("handsPersonId")); + accountHead.put("remark", params.get("remark")); + accountHead.put("changeAmount", params.get("changeAmount")); + accountHead.put("deleteFlag", 0); + transferDao.insertTransfer(accountHead); + transferDao.insertTransferItem(entitys); + }else{ + outputObject.setreturnMessage("数据格式错误"); + } + } + + /** + * 查询转账单用于数据回显 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @Override + public void queryTransferToEditById(InputObject inputObject, OutputObject outputObject) throws Exception { + Map params = inputObject.getParams(); + params.put("userId", inputObject.getLogParams().get("id")); + Map bean = transferDao.queryTransferToEditById(params); + if(bean != null && !bean.isEmpty()){ + List> beans = transferDao.queryTransferItemsToEditById(params); + bean.put("items", beans); + //获取经手人员 + List> userInfo = transferDao.queryUserInfoById(bean); + bean.put("userInfo", userInfo); + outputObject.setBean(bean); + outputObject.settotal(1); + }else{ + outputObject.setreturnMessage("未查询到信息!"); + } + } + + /** + * 编辑转账单信息 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @SuppressWarnings("unchecked") + @Override + @Transactional(value="transactionManager") + public void editTransferById(InputObject inputObject, OutputObject outputObject) throws Exception { + Map params = inputObject.getParams(); + String initemStr = params.get("initemStr").toString(); + if(ToolUtil.isJson(initemStr)) { + String useId = params.get("id").toString(); + String userId = inputObject.getLogParams().get("id").toString(); + //处理数据 + JSONArray jArray = JSONArray.fromObject(initemStr); + //转账单中间转换对象,财务子表存储对象 + Map bean; + List> entitys = new ArrayList<>();//财务子表实体集合信息 + BigDecimal allPrice = new BigDecimal("0");//主单总价 + BigDecimal itemAllPrice = null;//子单对象 + for(int i = 0; i < jArray.size(); i++){ + bean = jArray.getJSONObject(i); + Map entity = new HashMap<>(); + //获取子项金额 + itemAllPrice = new BigDecimal(bean.get("initemMoney").toString()); + entity.put("id", ToolUtil.getSurFaceId()); + entity.put("headerId", useId); + entity.put("accountId", bean.get("accountId")); + entity.put("eachAmount", bean.get("initemMoney")); + entity.put("remark", bean.get("remark")); + entity.put("userId", userId); + entity.put("deleteFlag", "0"); + entitys.add(entity); + //计算总金额 + allPrice = allPrice.add(itemAllPrice); + } + if(entitys.size() == 0){ + outputObject.setreturnMessage("请选择账户"); + return; + } + Map accountHead = new HashMap<>(); + accountHead.put("id", useId); + accountHead.put("userId", userId); + accountHead.put("totalPrice", allPrice); + accountHead.put("accountId", params.get("accountId")); + accountHead.put("operTime", params.get("operTime")); + accountHead.put("handsPersonId", params.get("handsPersonId")); + accountHead.put("remark", params.get("remark")); + accountHead.put("changeAmount", params.get("changeAmount")); + transferDao.editTransferById(accountHead); + //删除之前的绑定信息 + transferDao.deleteTransferItemById(params); + transferDao.insertTransferItem(entitys); + }else{ + outputObject.setreturnMessage("数据格式错误"); + } + } + + /** + * 删除转账单信息 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @Override + @Transactional(value="transactionManager") + public void deleteTransferById(InputObject inputObject, OutputObject outputObject) throws Exception { + Map params = inputObject.getParams(); + params.put("userId", inputObject.getLogParams().get("id")); + params.put("deleteFlag", 1); + transferDao.editTransferByDeleteFlag(params); + transferDao.editTransferItemsByDeleteFlag(params); + } + + /** + * 查看转账单详情 + * @param inputObject + * @param outputObject + * @throws Exception + */ + @Override + public void queryTransferByDetail(InputObject inputObject, OutputObject outputObject) throws Exception { + Map params = inputObject.getParams(); + params.put("userId", inputObject.getLogParams().get("id")); + //获取财务主表信息 + Map bean = transferDao.queryTransferDetailById(params); + if(bean != null && !bean.isEmpty()){ + //获取子表信息 + List> beans = transferDao.queryTransferItemsDetailById(bean); + bean.put("items", beans); + outputObject.setBean(bean); + outputObject.settotal(1); + }else{ + outputObject.setreturnMessage("该数据已不存在."); + } + } +} diff --git a/erp-modular/src/main/resources/dbmapper/erp/TransferMapper.xml b/erp-modular/src/main/resources/dbmapper/erp/TransferMapper.xml new file mode 100644 index 00000000..e91bb7ef --- /dev/null +++ b/erp-modular/src/main/resources/dbmapper/erp/TransferMapper.xml @@ -0,0 +1,167 @@ + + + + + + + + INSERT INTO erp_accounthead( + id, type, hands_person_id, change_amount, total_price, account_id, bill_no, bill_time, remark, tenant_id, delete_flag + ) VALUES + (#{id}, #{type}, #{handsPersonId}, #{changeAmount}, #{totalPrice}, #{accountId}, #{billNo}, #{operTime}, #{remark}, #{userId}, #{deleteFlag}) + + + + INSERT INTO erp_accountitem( + id, header_id, account_id, each_amount, remark, tenant_id, delete_flag + ) VALUES + + (#{item.id}, #{item.headerId}, #{item.accountId}, #{item.eachAmount}, #{item.remark}, #{item.userId}, #{item.deleteFlag}) + + + + + + + + + UPDATE erp_accounthead + + hands_person_id = #{handsPersonId}, + change_amount = #{changeAmount}, + total_price = #{totalPrice}, + bill_time = #{operTime}, + remark = #{remark}, + account_id = #{accountId} + + WHERE + id = #{id} + AND tenant_id = #{userId} + + + + DELETE + FROM + erp_accountitem + WHERE + header_id = #{id} + + + + UPDATE erp_accounthead + + delete_flag = #{deleteFlag} + + WHERE + id = #{id} + AND tenant_id = #{userId} + + + + UPDATE erp_accountitem + + delete_flag = #{deleteFlag} + + WHERE + header_id = #{id} + AND tenant_id = #{userId} + + + + + + + + + \ No newline at end of file diff --git a/erp-modular/src/main/resources/mapping/erp.xml b/erp-modular/src/main/resources/mapping/erp.xml index 7a4dc201..e0bc1acb 100644 --- a/erp-modular/src/main/resources/mapping/erp.xml +++ b/erp-modular/src/main/resources/mapping/erp.xml @@ -477,4 +477,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/erp-modular/src/main/resources/template/js/transfer/transferadd.js b/erp-modular/src/main/resources/template/js/transfer/transferadd.js new file mode 100644 index 00000000..23261162 --- /dev/null +++ b/erp-modular/src/main/resources/template/js/transfer/transferadd.js @@ -0,0 +1,236 @@ + +var userReturnList = new Array();//选择用户返回的集合或者进行回显的集合 +var chooseOrNotMy = "1";//人员列表中是否包含自己--1.包含;其他参数不包含 +var chooseOrNotEmail = "2";//人员列表中是否必须绑定邮箱--1.必须;其他参数没必要 +var checkType = "2";//人员选择类型,1.多选;其他。单选 + +layui.config({ + base: basePath, + version: skyeyeVersion +}).extend({ //指定js别名 + window: 'js/winui.window' +}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) { + winui.renderColor(); + layui.use(['form', 'tagEditor'], function(form) { + var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 + var $ = layui.$, + laydate = layui.laydate; + var rowNum = 1; //表格的序号 + var accountHtml = "";//账户 + + var usetableTemplate = $("#usetableTemplate").html(); + var selOption = getFileContent('tpl/template/select-option.tpl'); + var handsPersonList = new Array();//经手人员 + + //单据时间 + laydate.render({ + elem: '#operTime', + type: 'datetime', + value: getFormatDate(), + trigger: 'click' + }); + + initAccountHtml(); + + //初始化账户 + function initAccountHtml() { + AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) { + if(json.returnCode == 0) { + //加载账户数据 + accountHtml = getDataUseHandlebars(selOption, json); + $("#accountId").html(accountHtml); + //渲染 + form.render(); + //初始化一行数据 + addRow(); + } else { + winui.window.msg(json.returnMessage, {icon: 2, time: 2000}); + } + }}); + } + + //数量变化 + $("body").on("input", ".rkMoney", function() { + //计算价格 + calculatedTotalPrice(); + }); + $("body").on("change", ".rkMoney", function() { + calculatedTotalPrice(); + }); + + //计算总价 + function calculatedTotalPrice(){ + var rowTr = $("#useTable tr"); + var allPrice = 0; + $.each(rowTr, function(i, item) { + //获取行坐标 + var rowNum = $(item).attr("trcusid").replace("tr", ""); + //获取金额 + var initemMoney = parseFloat(isNull($("#initemMoney" + rowNum).val()) ? "0" : $("#initemMoney" + rowNum).val()); + //输出金额 + $("#initemMoney" + rowNum).html((initemMoney).toFixed(2)); + allPrice += initemMoney; + }); + $("#allPrice").html(allPrice.toFixed(2)); + } + + form.on('submit(formAddBean)', function(data) { + //表单验证 + if(winui.verifyForm(data.elem)) { + //获取数据 + var rowTr = $("#useTable tr"); + if(rowTr.length == 0) { + winui.window.msg('请选择账户名称.', {icon: 2, time: 2000}); + return false; + } + var tableData = new Array(); + var noError = false; //循环遍历表格数据时,是否有其他错误信息 + $.each(rowTr, function(i, item) { + //获取行编号 + var rowNum = $(item).attr("trcusid").replace("tr", ""); + if(inTableDataArrayByAssetarId($("#accountId" + rowNum).val(), tableData)) { + $("#accountId" + rowNum).addClass("layui-form-danger"); + $("#accountId" + rowNum).focus(); + winui.window.msg('一张单中不允许出现相同账户信息.', {icon: 2, time: 2000}); + noError = true; + return false; + } + var row = { + accountId: $("#accountId" + rowNum).val(), + initemMoney: $("#initemMoney" +rowNum).val(), + remark: $("#remark" + rowNum).val() + }; + tableData.push(row); + }); + if(noError) { + return false; + } + + var handsPersonId = ""; + $.each(handsPersonList, function (i, item) { + handsPersonId = item.id; + }); + if(isNull(handsPersonId)){ + winui.window.msg('请选择经手人.', {icon: 2, time: 2000}); + return false; + } + + var params = { + handsPersonId: handsPersonId, + operTime: $("#operTime").val(), + accountId: $("#accountId").val(), + remark: $("#remark").val(), + changeAmount: $("#changeAmount").val(), + initemStr: JSON.stringify(tableData) + }; + AjaxPostUtil.request({url: reqBasePath + "transfer002", params: params, type: 'json', callback: function(json) { + if(json.returnCode == 0) { + parent.layer.close(index); + parent.refreshCode = '0'; + } else { + winui.window.msg(json.returnMessage, {icon: 2, time: 2000}); + } + }}); + } + return false; + }); + + //判断选中的账户是否也在数组中 + function inTableDataArrayByAssetarId(accountId, array) { + var isIn = false; + $.each(array, function(i, item) { + if(item.accountId === accountId) { + isIn = true; + return false; + } + }); + return isIn; + } + + $('#handsPersonId').tagEditor({ + initialTags: [], + placeholder: '请选择经手人员', + beforeTagDelete: function(field, editor, tags, val) { + var inArray = -1; + $.each(handsPersonList, function(i, item) { + if(val === item.name) { + inArray = i; + return false; + } + }); + if(inArray != -1) { //如果该元素在集合中存在 + handsPersonList.splice(inArray, 1); + } + } + }); + + //人员选择 + $("body").on("click", "#toHandsPersonSelPeople", function(e){ + userReturnList = [].concat(handsPersonList); + _openNewWindows({ + url: "../../tpl/common/sysusersel.html", + title: "人员选择", + pageId: "sysuserselpage", + area: ['80vw', '80vh'], + callBack: function(refreshCode){ + if (refreshCode == '0') { + //移除所有tag + var tags = $('#handsPersonId').tagEditor('getTags')[0].tags; + for (i = 0; i < tags.length; i++) { + $('#handsPersonId').tagEditor('removeTag', tags[i]); + } + handsPersonList = [].concat(userReturnList); + //添加新的tag + $.each(handsPersonList, function(i, item){ + $('#handsPersonId').tagEditor('addTag', item.name); + }); + } else if (refreshCode == '-9999') { + winui.window.msg("操作失败", {icon: 2,time: 2000}); + } + }}); + }); + + //新增行 + $("body").on("click", "#addRow", function() { + addRow(); + }); + + //删除行 + $("body").on("click", "#deleteRow", function() { + deleteRow(); + }); + + //新增行 + function addRow() { + var par = { + id: "row" + rowNum.toString(), //checkbox的id + trId: "tr" + rowNum.toString(), //行的id + accountId: "accountId" + rowNum.toString(), //账户id + initemMoney: "initemMoney" + rowNum.toString(), //金额id + remark: "remark" + rowNum.toString() //备注id + }; + $("#useTable").append(getDataUseHandlebars(usetableTemplate, par)); + //赋值给账户 + $("#" + "accountId" + rowNum.toString()).html(accountHtml); + form.render('select'); + form.render('checkbox'); + rowNum++; + } + + //删除行 + function deleteRow() { + var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked"); + if(checkRow.length > 0) { + $.each(checkRow, function(i, item) { + $(item).parent().parent().remove(); + }); + } else { + winui.window.msg('请选择要删除的行', {icon: 2, time: 2000}); + } + } + + $("body").on("click", "#cancle", function() { + parent.layer.close(index); + }); + }); +}); \ No newline at end of file diff --git a/erp-modular/src/main/resources/template/js/transfer/transferedit.js b/erp-modular/src/main/resources/template/js/transfer/transferedit.js new file mode 100644 index 00000000..b396d9ec --- /dev/null +++ b/erp-modular/src/main/resources/template/js/transfer/transferedit.js @@ -0,0 +1,267 @@ + +var userReturnList = new Array();//选择用户返回的集合或者进行回显的集合 +var chooseOrNotMy = "1";//人员列表中是否包含自己--1.包含;其他参数不包含 +var chooseOrNotEmail = "2";//人员列表中是否必须绑定邮箱--1.必须;其他参数没必要 +var checkType = "2";//人员选择类型,1.多选;其他。单选 + +layui.config({ + base: basePath, + version: skyeyeVersion +}).extend({ //指定js别名 + window: 'js/winui.window' +}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) { + winui.renderColor(); + layui.use(['form', 'tagEditor'], function(form) { + var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 + var $ = layui.$, + laydate = layui.laydate; + var rowNum = 1; //表格的序号 + var accountHtml = "";//账户 + + var beanTemplate = $("#beanTemplate").html(); + var usetableTemplate = $("#usetableTemplate").html(); + var selOption = getFileContent('tpl/template/select-option.tpl'); + var handsPersonList = new Array();//经手人员 + + //加载单据数据 + var orderObject = []; + showGrid({ + id: "showForm", + url: reqBasePath + "transfer003", + params: {rowId: parent.rowId}, + pagination: false, + template: beanTemplate, + ajaxSendAfter:function(json){ + //单据时间 + laydate.render({ + elem: '#operTime', + type: 'datetime', + trigger: 'click' + }); + orderObject = json; + initAccountHtml(); + + var userNames = ""; + handsPersonList = json.bean.userInfo; + $.each(handsPersonList, function (i, item) { + userNames += item.name + ','; + }); + //人员选择 + $('#handsPersonId').tagEditor({ + initialTags: userNames.split(','), + placeholder: '请选择经手人员', + beforeTagDelete: function(field, editor, tags, val) { + var inArray = -1; + $.each(handsPersonList, function(i, item) { + if(val === item.name) { + inArray = i; + return false; + } + }); + if(inArray != -1) { //如果该元素在集合中存在 + handsPersonList.splice(inArray, 1); + } + } + }); + } + }); + + //初始化账户 + function initAccountHtml() { + AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) { + if(json.returnCode == 0) { + //加载账户数据 + accountHtml = getDataUseHandlebars(selOption, json); + $("#accountId").html(accountHtml); + //渲染数据到页面 + initDataToShow(); + } else { + winui.window.msg(json.returnMessage, {icon: 2, time: 2000}); + } + }}); + } + + //渲染数据到页面 + function initDataToShow(){ + $("#accountId").val(orderObject.bean.accountId);//付款账户 + + //渲染列表项 + $.each(orderObject.bean.items, function(i, item){ + addRow(); + $("#accountId" + (rowNum - 1)).val(item.accountId);//账户回显 + $("#initemMoney" + (rowNum - 1)).val(item.initemMoney.toFixed(2));//金额回显 + $("#remark" + (rowNum - 1)).val(item.remark);//备注回显 + //设置标识 + $("tr[trcusid='tr" + (rowNum - 1) + "']").attr("thisid", item.id); + }); + //渲染 + form.render(); + } + + form.on('submit(formEditBean)', function(data) { + //表单验证 + if(winui.verifyForm(data.elem)) { + var rowTr = $("#useTable tr"); + if(rowTr.length == 0) { + winui.window.msg('请选择账户.', {icon: 2, time: 2000}); + return false; + } + var tableData = new Array(); + var noError = false; //循环遍历表格数据时,是否有其他错误信息 + $.each(rowTr, function(i, item) { + //获取行编号 + var rowNum = $(item).attr("trcusid").replace("tr", ""); + if(inTableDataArrayByAssetarId($("#accountId" + rowNum).val(), tableData)) { + $("#accountId" + rowNum).addClass("layui-form-danger"); + $("#accountId" + rowNum).focus(); + winui.window.msg('一张单中不允许出现相同账户信息.', {icon: 2, time: 2000}); + noError = true; + return false; + } + var row = { + accountId: $("#accountId" + rowNum).val(), + initemMoney: $("#initemMoney" +rowNum).val(), + remark: $("#remark" + rowNum).val() + }; + tableData.push(row); + }); + if(noError) { + return false; + } + + var handsPersonId = ""; + $.each(handsPersonList, function (i, item) { + handsPersonId = item.id; + }); + if(isNull(handsPersonId)){ + winui.window.msg('请选择经手人.', {icon: 2, time: 2000}); + return false; + } + + var params = { + rowId: parent.rowId, + handsPersonId: handsPersonId, + operTime: $("#operTime").val(), + accountId: $("#accountId").val(), + remark: $("#remark").val(), + changeAmount: $("#changeAmount").val(), + initemStr: JSON.stringify(tableData) + }; + AjaxPostUtil.request({url: reqBasePath + "transfer004", params: params, type: 'json', callback: function(json) { + if(json.returnCode == 0) { + parent.layer.close(index); + parent.refreshCode = '0'; + } else { + winui.window.msg(json.returnMessage, {icon: 2, time: 2000}); + } + }}); + } + return false; + }); + + $("body").on("input", ".rkMoney", function() { + //计算价格 + calculatedTotalPrice(); + }); + $("body").on("change", ".rkMoney", function() { + calculatedTotalPrice(); + }); + + //计算总价 + function calculatedTotalPrice(){ + var rowTr = $("#useTable tr"); + var allPrice = 0; + $.each(rowTr, function(i, item) { + //获取行坐标 + var rowNum = $(item).attr("trcusid").replace("tr", ""); + //获取金额 + var initemMoney = parseFloat(isNull($("#initemMoney" + rowNum).val()) ? "0" : $("#initemMoney" + rowNum).val()); + //输出金额 + $("#initemMoney" + rowNum).html((initemMoney).toFixed(2)); + allPrice += initemMoney; + }); + $("#allPrice").html(allPrice.toFixed(2)); + } + + //判断选中的账户是否也在数组中 + function inTableDataArrayByAssetarId(accountId, array) { + var isIn = false; + $.each(array, function(i, item) { + if(item.accountId === accountId) { + isIn = true; + return false; + } + }); + return isIn; + } + + //人员选择 + $("body").on("click", "#toHandsPersonSelPeople", function(e){ + userReturnList = [].concat(handsPersonList); + _openNewWindows({ + url: "../../tpl/common/sysusersel.html", + title: "人员选择", + pageId: "sysuserselpage", + area: ['80vw', '80vh'], + callBack: function(refreshCode){ + if (refreshCode == '0') { + //移除所有tag + var tags = $('#handsPersonId').tagEditor('getTags')[0].tags; + for (i = 0; i < tags.length; i++) { + $('#handsPersonId').tagEditor('removeTag', tags[i]); + } + handsPersonList = [].concat(userReturnList); + //添加新的tag + $.each(handsPersonList, function(i, item){ + $('#handsPersonId').tagEditor('addTag', item.name); + }); + } else if (refreshCode == '-9999') { + winui.window.msg("操作失败", {icon: 2,time: 2000}); + } + }}); + }); + + //新增行 + $("body").on("click", "#addRow", function() { + addRow(); + }); + + //删除行 + $("body").on("click", "#deleteRow", function() { + deleteRow(); + }); + + //新增行 + function addRow() { + var par = { + id: "row" + rowNum.toString(), //checkbox的id + trId: "tr" + rowNum.toString(), //行的id + accountId: "accountId" + rowNum.toString(), //账户id + initemMoney: "initemMoney" + rowNum.toString(), //金额id + remark: "remark" + rowNum.toString() //备注id + }; + $("#useTable").append(getDataUseHandlebars(usetableTemplate, par)); + //赋值给账户 + $("#" + "accountId" + rowNum.toString()).html(accountHtml); + form.render('select'); + form.render('checkbox'); + rowNum++; + } + + //删除行 + function deleteRow() { + var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked"); + if(checkRow.length > 0) { + $.each(checkRow, function(i, item) { + $(item).parent().parent().remove(); + }); + } else { + winui.window.msg('请选择要删除的行', {icon: 2, time: 2000}); + } + } + + $("body").on("click", "#cancle", function() { + parent.layer.close(index); + }); + }); +}); \ No newline at end of file diff --git a/erp-modular/src/main/resources/template/js/transfer/transferinfo.js b/erp-modular/src/main/resources/template/js/transfer/transferinfo.js new file mode 100644 index 00000000..e920e707 --- /dev/null +++ b/erp-modular/src/main/resources/template/js/transfer/transferinfo.js @@ -0,0 +1,28 @@ + +layui.config({ + base: basePath, + version: skyeyeVersion +}).extend({ //指定js别名 + window: 'js/winui.window' +}).define(['window', 'table', 'jquery', 'winui'], function (exports) { + winui.renderColor(); + layui.use(['form'], function (form) { + var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 + var $ = layui.$; + + var beanTemplate = $("#beanTemplate").html(); + + showGrid({ + id: "showForm", + url: reqBasePath + "transfer006", + params: {rowId: parent.rowId}, + pagination: false, + template: beanTemplate, + ajaxSendAfter:function(json){ + + form.render(); + } + }); + + }); +}); \ No newline at end of file diff --git a/erp-modular/src/main/resources/template/js/transfer/transferlist.js b/erp-modular/src/main/resources/template/js/transfer/transferlist.js new file mode 100644 index 00000000..95fdd6a5 --- /dev/null +++ b/erp-modular/src/main/resources/template/js/transfer/transferlist.js @@ -0,0 +1,171 @@ + +var rowId = ""; + +//单据的开始时间、结束时间 +var startTime = "", endTime = ""; + +layui.config({ + base: basePath, + version: skyeyeVersion +}).extend({ //指定js别名 + window: 'js/winui.window' +}).define(['window', 'table', 'jquery', 'winui', 'form', 'laydate'], function (exports) { + winui.renderColor(); + var $ = layui.$, + form = layui.form, + laydate = layui.laydate, + table = layui.table; + authBtn('1571638020191'); + + laydate.render({ + elem: '#billTime', //指定元素 + range: '~' + }); + + //表格渲染 + table.render({ + id: 'messageTable', + elem: '#messageTable', + method: 'post', + url: reqBasePath + 'transfer001', + where: {billNo: $("#billNo").val(), startTime: startTime, endTime: endTime}, + even: true, //隔行变色 + page: true, + limits: [8, 16, 24, 32, 40, 48, 56], + limit: 8, + cols: [[ + { title: '序号', type: 'numbers'}, + { field: 'billNo', title: '单据编号', align: 'left', width: 200, templet: function(d){ + return '' + d.billNo + ''; + }}, + { field: 'totalPrice', title: '合计金额', align: 'left', width: 120}, + { field: 'hansPersonName', title: '经手人', align: 'left', width: 100}, + { field: 'billTime', title: '单据日期', align: 'center', width: 140 }, + { field: 'remark', title: '备注', align: 'center', width: 140 }, + { title: '操作', fixed: 'right', align: 'center', width: 200, toolbar: '#tableBar'} + ]] + }); + + table.on('tool(messageTable)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值" + var data = obj.data; //获得当前行数据 + var layEvent = obj.event; //获得 lay-event 对应的值 + if (layEvent === 'delete') { //删除 + deletetransfer(data); + }else if (layEvent === 'details') { //详情 + details(data); + }else if (layEvent === 'edit') { //编辑 + edit(data); + } + }); + + //搜索表单 + form.render(); + form.on('submit(formSearch)', function (data) { + //表单验证 + if (winui.verifyForm(data.elem)) { + loadTable(); + } + return false; + }); + + //编辑 + function edit(data){ + rowId = data.id; + _openNewWindows({ + url: "../../tpl/transfer/transferedit.html", + title: "编辑", + pageId: "transferedit", + area: ['90vw', '90vh'], + callBack: function(refreshCode){ + if (refreshCode == '0') { + winui.window.msg("操作成功", {icon: 1,time: 2000}); + loadTable(); + } else if (refreshCode == '-9999') { + winui.window.msg("操作失败", {icon: 2,time: 2000}); + } + }}); + } + + //删除 + function deletetransfer(data){ + layer.confirm('确认要删除信息吗?', { icon: 3, title: '删除操作' }, function (index) { + AjaxPostUtil.request({url:reqBasePath + "transfer005", params: {rowId: data.id}, type:'json', callback:function(json){ + if(json.returnCode == 0){ + winui.window.msg("删除成功。", {icon: 1,time: 2000}); + loadTable(); + }else{ + winui.window.msg(json.returnMessage, {icon: 2,time: 2000}); + } + }}); + }); + } + + //详情 + function details(data){ + rowId = data.id; + _openNewWindows({ + url: "../../tpl/transfer/transferinfo.html", + title: "详情", + pageId: "transferinfo", + area: ['90vw', '90vh'], + callBack: function(refreshCode){ + if (refreshCode == '0') { + winui.window.msg("操作成功", {icon: 1,time: 2000}); + loadTable(); + } else if (refreshCode == '-9999') { + winui.window.msg("操作失败", {icon: 2,time: 2000}); + } + }}); + } + + //添加 + $("body").on("click", "#addBean", function(){ + _openNewWindows({ + url: "../../tpl/transfer/transferadd.html", + title: "新增", + pageId: "transferadd", + area: ['90vw', '90vh'], + callBack: function(refreshCode){ + if (refreshCode == '0') { + winui.window.msg("操作成功", {icon: 1,time: 2000}); + loadTable(); + } else if (refreshCode == '-9999') { + winui.window.msg("操作失败", {icon: 2,time: 2000}); + } + }}); + }); + + $("body").on("click", "#reloadTable", function() { + loadTable(); + }); + + $("body").on("click", "#formSearch", function () { + refreshTable(); + }) + + //刷新 + function loadTable(){ + if(isNull($("#billTime").val())){//一定要记得,当createTime为空时 + startTime = ""; + endTime = ""; + }else { + startTime = $("#billTime").val().split('~')[0].trim() + ' 00:00:00'; + endTime = $("#billTime").val().split('~')[1].trim() + ' 23:59:59'; + } + table.reload("messageTable", {where:{billNo: $("#billNo").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}}); + } + + //搜索 + function refreshTable(){ + if(isNull($("#billTime").val())){//一定要记得,当createTime为空时 + startTime = ""; + endTime = ""; + }else { + startTime = $("#billTime").val().split('~')[0].trim() + ' 00:00:00'; + endTime = $("#billTime").val().split('~')[1].trim() + ' 23:59:59'; + } + table.reload("messageTable", {page: {curr: 1}, where:{billNo: $("#billNo").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}}) + } + + exports('transferlist', {}); +}); diff --git a/erp-modular/src/main/resources/template/tpl/transfer/transferadd.html b/erp-modular/src/main/resources/template/tpl/transfer/transferadd.html new file mode 100644 index 00000000..25202386 --- /dev/null +++ b/erp-modular/src/main/resources/template/tpl/transfer/transferadd.html @@ -0,0 +1,98 @@ + + + + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + +
账户名称金额备注
+
+
+
+ +
+ 0.00 +
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+ +
+ +
+
+
+
+ + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/erp-modular/src/main/resources/template/tpl/transfer/transferedit.html b/erp-modular/src/main/resources/template/tpl/transfer/transferedit.html new file mode 100644 index 00000000..9d611b83 --- /dev/null +++ b/erp-modular/src/main/resources/template/tpl/transfer/transferedit.html @@ -0,0 +1,105 @@ + + + + + + + + + + +
+ + + +
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/erp-modular/src/main/resources/template/tpl/transfer/transferinfo.html b/erp-modular/src/main/resources/template/tpl/transfer/transferinfo.html new file mode 100644 index 00000000..f7dc79e3 --- /dev/null +++ b/erp-modular/src/main/resources/template/tpl/transfer/transferinfo.html @@ -0,0 +1,93 @@ + + + + + + + + + + +
+
+ +
+ + + +
+ + + + + \ No newline at end of file diff --git a/erp-modular/src/main/resources/template/tpl/transfer/transferlist.html b/erp-modular/src/main/resources/template/tpl/transfer/transferlist.html new file mode 100644 index 00000000..3b55857e --- /dev/null +++ b/erp-modular/src/main/resources/template/tpl/transfer/transferlist.html @@ -0,0 +1,53 @@ + + + + + + + + + + +
+
+
+
+ +
+ +
+ +
+ +
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+ + + + + \ No newline at end of file