fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java
@@ -19,5 +19,6 @@ /** * é»è®¤ç»ç®å */ public static String IN_SETTLE_DEFAULT = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type'content='text/html;charset=UTF-8'><title>å ¥åºè¿ç£ å</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'å®ä½';padding-top:15px}.div-tit{padding-top:10px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:50%;float:left;padding-bottom:10px}.sp2{width:50%;float:left;text-align:center}</style></head><body><h1 class='tit'>billTitle</h1><div class='div-tit'><span class='sp1'>ç»ç®æ¶é´ï¼payTime</span><span class='sp1'>å ¥åºåå·ï¼serId</span></div><table cellspacing='0'cellpadding='0'><tr><td width='12.5%'>åè´§åä½</td><td colspan='3'width='37.5%'>customerName</td><td width='12.5%'>æ¶è´§åä½</td><td colspan='3'width='37.5%'>deptName</td></tr><tr><td width='12.5%'>弿·é¶è¡</td><td colspan='3'width='37.5%'>bank</td><td>æ¯é(KG)</td><td>fullWeight</td><td>ç®é(KG)</td><td>emptyWeight</td></tr><tr><td width='12.5%'>é¶è¡å¡å·</td><td colspan='3'width='37.5%'>banNum</td><td>åé(KG)</td><td>netWeight</td><td>æ»æ£é(KG)</td><td>deSum</td></tr><tr><td>å ¥åºä»åº</td><td>depotName</td><td>ç²®é£åç§</td><td>foodVariety</td><td>ç²®é£åä»·</td><td>payPrice</td><td>ç»ç®éé</td><td>settleWeight</td></tr><tr><td>ä¿ç®¡å</td><td>keeperName</td><td>æ¿è¿äºº</td><td>driverName</td><td>å ¶ä»è´¹ç¨</td><td>otherSum</td><td>ç»ç®è´¹ç¨</td><td>paySum</td></tr><tr><td>夿³¨</td><td colspan='3'>remark</td><td>大åéé¢</td><td colspan='3'>moneyName</td></tr></table><div class='div-tit'><span class=\"sp2\">æ¶è´§åä½ç¾åï¼</span><span class=\"sp2\">客æ·ç¾åï¼</span></div></body></html>"; public static String IN_SETTLE_DEFAULT = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type'content='text/html;charset=UTF-8'><title>ç»ç®å</title><style>body{text-align:center;padding:10px;font-family:'å®ä½'}.tit{font-size:24px;flex-grow:1;text-align:center}.div-tit{padding-top:6px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px;border-collapse:collapse}table td{border-left:1px solid;border-top:1px solid;height:32px}.sp1{width:33%;float:left;padding-bottom:5px}.sp2{width:25%;float:left;text-align:center}.sp3{width:16.6%;float:left;text-align:center}.txt-left{text-align:left}.txt-center{text-align:center}.txt-right{text-align:right}</style></head><body><h1 class='tit'><u>[billTitle]</u></h1><div class='div-tit'><span class='sp1 txt-left'>åºåºåç§°ï¼[deptId]</span><span class='sp1 txt-center'>åæ®å·:[id]</span><span class='sp1 txt-right'>æå°æ¶é´ï¼[payTime]</span></div><table cellspacing='0'cellpadding='0'><tr><td>客æ·åç§°</td><td colspan='7'>[customerName]</td></tr><tr><td width='12.5%'>æ¿è¿äºº</td><td width='37.5%'colspan='3'>[userName]</td><td width='12.5%'>èç³»çµè¯</td><td width='37.5%'colspan='3'>[userContact]</td></tr><tr><td>身份è¯å·ç </td><td colspan='3'>[userId]</td><td>车çå·</td><td colspan='3'>[plateNum]</td></tr><tr><td>ä»åº</td><td colspan='3'>[depotId]</td><td>ç²®é£åç§°</td><td colspan='3'>[foodVariety]</td></tr><tr><td>夿³¨</td><td colspan=\"7\">[remark]</td></tr><tr><td colspan=\"8\">计éä¿¡æ¯</td></tr><tr><td>æ¯é</td><td colspan='2'>[fullWeight]å ¬æ¤</td><td>ç®é</td><td colspan='2'>[emptyWeight]å ¬æ¤</td><td>æ£é</td><td colspan='2'>[deOther]å ¬æ¤</td></tr><tr><td colspan=\"8\">ç»ç®ä¿¡æ¯</td></tr><tr><td>åä»·</td><td colspan='2'>[payPrice]å /å ¬æ¤</td><td>ç»ç®éé</td><td colspan='2'>[settleWeight]å ¬æ¤</td><td>ç»ç®éé¢</td><td colspan='2'>[payMoney]å </td></tr><tr><td>大åéé¢</td><td colspan=\"7\">[payMoneyName]</td></tr></table><div class='div-tit'><span class='sp2 txt-left '>ç»ç®åï¼_______</span><span class='sp2 txt-left '>ä¿ç®¡åï¼_______</span><span class='sp2 txt-left '>å®¡æ ¸äººï¼_______</span><span class='sp2 txt-left '>æ¿è¿äººï¼_______</span></div></body></html>"; } fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java
@@ -29,7 +29,6 @@ */ private static final long serialVersionUID = 1L; public static String SORT_PROP = "updateTime"; /** * åä»åå· */ @@ -77,4 +76,12 @@ @TableField("number") private Double number = 0.0; @Column(name = "stock_user", columnDefinition = "varchar(40) COMMENT 'åä»äºº'") @TableField("stock_user") private String stockUser; @Column(name = "remarks", columnDefinition = "varchar(200) COMMENT '夿³¨ä¿¡æ¯'") @TableField("remarks") private String remarks; } fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutStockChangeMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.fzzy.igds.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.fzzy.igds.domain.InoutStockChange; import org.apache.ibatis.annotations.Mapper; /** * @Description * @Author CZT * @Date 2025/12/08 17:48 */ @Mapper public interface InoutStockChangeMapper extends BaseMapper<InoutStockChange> { } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
@@ -14,6 +14,7 @@ import com.fzzy.igds.mapper.InoutRecordMapper; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import com.fzzy.igds.utils.MoneyUtil; import com.fzzy.igds.utils.NumberUtil; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.redis.RedisCache; @@ -23,6 +24,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Date; import java.util.List; @@ -124,15 +126,16 @@ if (StringUtils.isNotBlank(param.getType())) { queryWrapper.eq("type", param.getType()); } if (StringUtils.isNotBlank(param.getSettleTag())) { queryWrapper.eq("settle_tag", param.getSettleTag()); } if (null != param.getStart()) { queryWrapper.ge("create_time", DateUtil.getCurZero(param.getStart())); } if (null != param.getEnd()) { queryWrapper.le("create_time", DateUtil.getNextZero(param.getEnd())); } queryWrapper.eq("record_status", Constant.RECORD_STATUS_NORMAL); //æ£å¸¸ç¶æçåå queryWrapper.or(); queryWrapper.eq("record_status", Constant.RECORD_STATUS_ADD); //è¡¥å½ååçåå queryWrapper.ne("record_status", Constant.RECORD_STATUS_DEL); //䏿¯å é¤çååï¼å³æ£å¸¸çåå queryWrapper.orderByDesc("create_time"); return queryWrapper; @@ -649,4 +652,71 @@ return bill; } /** * è·åç»ç®å * * @param * @return */ public String printPay(InoutRecord data) { // è°æ´æ¨¡çæ°æ®å¹¶è¿å String htmlStr = InoutBill.IN_SETTLE_DEFAULT; //æ é¢ //æ¸ è¿åºåè´§åä½åæ é¢ï¼ä½¿ç¨å ¬å¸å String billTitle = data.getType().equals("IN") ? "å ¥åºç»ç®å" : "åºåºç»ç®å"; htmlStr = htmlStr.replace("[billTitle]", billTitle); //åºåºåç§° SysDept dept = sysDeptService.getCacheDept(data.getCompanyId(), data.getDeptId()); if (dept != null) { htmlStr = htmlStr.replace("[deptId]", null == data.getDeptId() ? "" : dept.getDeptName()); } else { htmlStr = htmlStr.replace("[deptId]", ""); } //ä¸å¡åå· htmlStr = htmlStr.replace("[id]", data.getId()); //æå°æ¶é´ htmlStr = htmlStr.replace("[payTime]", null == data.getSettleTime() ? "" : DateFormatUtils.format(data.getSettleTime(), "yyyyå¹´MMæddæ¥")); //客æ·åç§° htmlStr = htmlStr.replace("[customerName]", null == data.getCustomerName() ? "" : data.getCustomerName()); //æ¿è¿äºº htmlStr = htmlStr.replace("[userName]", null == data.getUserName() ? "" : data.getUserName()); //æ¿è¿äººèç³»çµè¯ htmlStr = htmlStr.replace("[userContact]", null == data.getUserContact() ? "" : data.getUserContact()); //æ¿è¿äººèº«ä»½è¯å· htmlStr = htmlStr.replace("[userId]", null == data.getUserId() ? "" : data.getUserId()); //æ¿è¿äººè½¦çå· htmlStr = htmlStr.replace("[plateNum]", null == data.getPlateNum() ? "" : data.getPlateNum()); //è·åä»åºä¿¡æ¯ Depot depot = depotService.getCacheDepot(data.getCompanyId(), data.getDepotId()); if (null != depot) { //è´§ä½ä¿¡æ¯ htmlStr = htmlStr.replace("[depotId]", depot.getName()); } //ç²®é£åç§° htmlStr = htmlStr.replace("[foodVariety]", null == data.getFoodVariety() ? "" : FoodVariety.getMsg(data.getFoodVariety())); //夿³¨ htmlStr = htmlStr.replace("[remark]", null == data.getRemarks() ? "" : data.getRemarks()); //æ¯é htmlStr = htmlStr.replace("[fullWeight]", null == data.getFullWeight() ? "" : String.format("%.2f", data.getFullWeight())); //ç®é htmlStr = htmlStr.replace("[emptyWeight]", null == data.getEmptyWeight() ? "" : String.format("%.2f", data.getEmptyWeight())); //æ£é htmlStr = htmlStr.replace("[deOther]", null == data.getDeOther() ? "" : String.format("%.2f", data.getDeOther())); //ç²®æ²¹ä»·æ ¼ htmlStr = htmlStr.replace("[payPrice]", null == data.getPrice() ? "" : String.format("%.3f", data.getPrice())); //ç»ç®éé htmlStr = htmlStr.replace("[settleWeight]", String.format("%.2f", data.getSettleWeight())); //ç»ç®éé¢ htmlStr = htmlStr.replace("[payMoney]", null == data.getSettleMoney() ? "" : String.format("%.3f", data.getSettleMoney())); //ç»ç®ééåç§° htmlStr = htmlStr.replace("[payMoneyName]", MoneyUtil.formatToCN(new BigDecimal(String.format("%.2f", data.getSettleMoney())))); return htmlStr; } } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutStockChangeService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,109 @@ package com.fzzy.igds.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.igds.domain.InoutStockChange; import com.fzzy.igds.mapper.InoutStockChangeMapper; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * @Description * @Author CZT * @Date 2025/12/08 17:48 */ @Slf4j @Service public class InoutStockChangeService { @Resource private InoutStockChangeMapper inoutStockChangeMapper; public void listPageData(Page<InoutStockChange> page, InoutStockChange param) { QueryWrapper<InoutStockChange> queryWrapper = new QueryWrapper<>(); param.setCompanyId(ContextUtil.getCompanyId()); param.setDeptId(ContextUtil.subDeptId(null)); queryWrapper.eq("company_id", param.getCompanyId()); queryWrapper.eq("dept_id", param.getDeptId()); if(StringUtils.isNotBlank(param.getDepotIdIn())){ queryWrapper.eq("depot_id_in", param.getDepotIdIn()); } if(StringUtils.isNotBlank(param.getDepotIdOut())){ queryWrapper.eq("depot_id_out", param.getDepotIdOut()); } if (null != param.getChangeStartDate()) { queryWrapper.ge("change_date", DateUtil.getCurZero(param.getChangeStartDate())); } if (null != param.getChangeEndDate()) { queryWrapper.le("change_date", DateUtil.getNextZero(param.getChangeEndDate())); } inoutStockChangeMapper.selectPage(page, queryWrapper); } /** * ä¿åæ°æ® * @param data */ public void saveData(InoutStockChange data) { if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(data.getDeptId())) { data.setDeptId(ContextUtil.subDeptId(null)); } if(StringUtils.isEmpty(data.getId())){ data.setId(getStrId(data.getDeptId(), data.getChangeDate())); data.setCreateBy(ContextUtil.getLoginUserName()); data.setCreateTime(new Date()); } data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); inoutStockChangeMapper.insert(data); } /** * å 餿°æ® * @param data * @return */ public String delData(InoutStockChange data) { inoutStockChangeMapper.deleteById(data); return null; } /** * è·å主é®ID * * @param deptId * @param deptId */ public String getStrId(String deptId, Date time) { QueryWrapper<InoutStockChange> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("dept_id", deptId); queryWrapper.ge("change_date", DateUtil.getCurZero(time)); queryWrapper.le("change_date", DateUtil.getNextZero(time)); //IDååº queryWrapper.orderByDesc("id"); List<InoutStockChange> list = inoutStockChangeMapper.selectList(queryWrapper); String oldOrderId = null; if (null != list && list.size() > 0) { oldOrderId = list.get(0).getId().substring(8); } return DateFormatUtils.format(time, "yyyyMMdd") + ContextUtil.getOrderId(oldOrderId, 4); } } fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,129 @@ package com.fzzy.igds.utils; import java.math.BigDecimal; /** * * * æ°å转æ¢ä¸ºæ±è¯ä¸äººæ°å¸ç大å<br> * */ public class MoneyUtil { /** * æ±è¯ä¸æ°å大å */ private static final String[] CN_UPPER_NUMBER = { "é¶", "壹", "è´°", "å", "è", "ä¼", "é", "æ", "æ", "ç" }; /** * æ±è¯ä¸è´§å¸åä½å¤§åï¼è¿æ ·ç设计类似äºå ä½ç¬¦ */ private static final String[] CN_UPPER_MONETRAY_UNIT = { "å", "è§", "å ", "æ¾", "ä½°", "ä»", "ä¸", "æ¾", "ä½°", "ä»", "亿", "æ¾", "ä½°", "ä»", "å ", "æ¾", "ä½°", "ä»" }; /** * ç¹æ®åç¬¦ï¼æ´ */ private static final String CN_FULL = "æ´"; /** * ç¹æ®å符ï¼è´ */ private static final String CN_NEGATIVE = "è´"; /** * éé¢ç精度ï¼é»è®¤å¼ä¸º2 */ private static final int MONEY_PRECISION = 2; /** * ç¹æ®å符ï¼é¶å æ´ */ private static final String CN_ZEOR_FULL = "é¶å " + CN_FULL; /** * æè¾å ¥çéé¢è½¬æ¢ä¸ºæ±è¯ä¸äººæ°å¸ç大å * * @param numberOfMoney * è¾å ¥çéé¢ * @return 对åºçæ±è¯å¤§å */ public static String formatToCN(BigDecimal numberOfMoney) { StringBuffer sb = new StringBuffer(); // -1, 0, or 1 as the value of this BigDecimal is negative, zero, or // positive. int signum = numberOfMoney.signum(); // é¶å æ´çæ åµ if (signum == 0) { return CN_ZEOR_FULL; } // è¿éä¼è¿è¡éé¢çåèäºå ¥ long number = numberOfMoney.movePointRight(MONEY_PRECISION) .setScale(0, 4).abs().longValue(); // å¾å°å°æ°ç¹å两ä½å¼ long scale = number % 100; int numUnit = 0; int numIndex = 0; boolean getZero = false; // 夿æå䏤使°ï¼ä¸å ±æå䏿 åµï¼00 = 0, 01 = 1, 10, 11 if (!(scale > 0)) { numIndex = 2; number = number / 100; getZero = true; } if ((scale > 0) && (!(scale % 10 > 0))) { numIndex = 1; number = number / 10; getZero = true; } int zeroSize = 0; while (true) { if (number <= 0) { break; } // æ¯æ¬¡è·åå°æåä¸ä¸ªæ° numUnit = (int) (number % 10); if (numUnit > 0) { if ((numIndex == 9) && (zeroSize >= 3)) { sb.insert(0, CN_UPPER_MONETRAY_UNIT[6]); } if ((numIndex == 13) && (zeroSize >= 3)) { sb.insert(0, CN_UPPER_MONETRAY_UNIT[10]); } sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]); sb.insert(0, CN_UPPER_NUMBER[numUnit]); getZero = false; zeroSize = 0; } else { ++zeroSize; if (!(getZero)) { sb.insert(0, CN_UPPER_NUMBER[numUnit]); } if (numIndex == 2) { if (number > 0) { sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]); } } else if (((numIndex - 2) % 4 == 0) && (number % 1000 > 0)) { sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]); } getZero = true; } // 让numberæ¯æ¬¡é½å»ææåä¸ä¸ªæ° number = number / 10; ++numIndex; } // 妿signum == -1ï¼å说æè¾å ¥çæ°åä¸ºè´æ°ï¼å°±å¨æåé¢è¿½å ç¹æ®å符ï¼è´ if (signum == -1) { sb.insert(0, CN_NEGATIVE); } // è¾å ¥çæ°åå°æ°ç¹å两ä½ä¸º"00"çæ åµï¼åè¦å¨æå追å ç¹æ®åç¬¦ï¼æ´ if (!(scale > 0)) { sb.append(CN_FULL); } return sb.toString(); } public static void main(String[] args) { double money = 11901.1; BigDecimal numberOfMoney = new BigDecimal(money); String s = MoneyUtil.formatToCN(numberOfMoney); System.out.println("ä½ è¾å ¥çéé¢ä¸ºï¼ã" + money + "ã #--# [" + s.toString() + "]"); } } fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java
@@ -32,7 +32,6 @@ * * @param page * @param param * @throws Exception */ @DataProvider public void pageInoutData(Page<InoutRecord> page, InoutParam param) { fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
@@ -316,7 +316,7 @@ </Property> </PropertyDef> <PropertyDef name="plateNum"> <Property name="label">车çå·å·</Property> <Property name="label">车çå·</Property> </PropertyDef> <PropertyDef name="foodVariety"> <Property></Property> @@ -712,7 +712,7 @@ <Property name="iconClass">fa fa-tasks</Property> <Property name="caption">åæ®ä¿¡æ¯</Property> <Property name="width">1200</Property> <Property name="showCaptionBar">false</Property> <Property name="closeable">false</Property> <Buttons> <Button id="btnOK"> <ClientEvent name="onClick">var data = view.get("#dsMain.data:#");
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,920 @@ <?xml version="1.0" encoding="UTF-8"?> <ViewConfig> <Arguments/> <Context/> <Model> <DataType name="dtQuery"> <Property name="creationType">com.fzzy.igds.data.InoutParam</Property> <PropertyDef name="plateNum"> <Property name="label">车çå·</Property> </PropertyDef> <PropertyDef name="type"> <Property name="label">åºå ¥åºç±»å</Property> <Property name="mapping"> <Property name="mapValues"> <Collection> <Entity> <Property name="name">åºåº</Property> <Property name="value">OUT</Property> </Entity> <Entity> <Property name="name">å ¥åº</Property> <Property name="value">IN</Property> </Entity> </Collection> </Property> <Property name="keyProperty">value</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="settleTag"> <Property name="label">æ¯å¦ç»ç®</Property> <Property name="mapping"> <Property name="mapValues"> <Collection> <Entity> <Property name="name">æªç»ç®</Property> <Property name="value">N</Property> </Entity> <Entity> <Property name="name">å·²ç»ç®</Property> <Property name="value">Y</Property> </Entity> </Collection> </Property> <Property name="keyProperty">value</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="start"> <Property name="label">å¼å§æ¶é´</Property> <Property name="dataType">Date</Property> </PropertyDef> <PropertyDef name="end"> <Property name="label">æªæ¢æ¶é´</Property> <Property name="dataType">Date</Property> </PropertyDef> </DataType> <DataType name="dtMain"> <Property name="creationType">com.fzzy.igds.domain.InoutRecord</Property> <PropertyDef name="id"> <Property></Property> <Property name="label">åæ®å·</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="companyId"> <Property></Property> <Property name="label">ç»ç»ç¼ç </Property> </PropertyDef> <PropertyDef name="progress"> <Property></Property> <Property name="label">æµç¨è¿åº¦</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("PROCESS_STATUS_")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="recordStatus"> <Property></Property> <Property name="label">æ°æ®ç¶æ</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("RECORD_STATUS")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="checkStatus"> <Property></Property> <Property name="label">æ¦æ ·ç»æ</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("CHECK_STATUS")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="registerTime"> <Property name="dataType">DateTime</Property> <Property name="label">ç»è®°æ¶é´</Property> </PropertyDef> <PropertyDef name="registerUser"> <Property></Property> <Property name="label">ç»è®°äººå</Property> </PropertyDef> <PropertyDef name="userName"> <Property></Property> <Property name="label">æ¿è¿äºº</Property> </PropertyDef> <PropertyDef name="userId"> <Property></Property> <Property name="label">身份è¯å·</Property> </PropertyDef> <PropertyDef name="userContact"> <Property></Property> <Property name="label">èç³»æ¹å¼</Property> </PropertyDef> <PropertyDef name="userAddress"> <Property></Property> <Property name="label">æ¿è¿äººå°å</Property> </PropertyDef> <PropertyDef name="plateNum"> <Property></Property> <Property name="label">车çå·</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="customerName"> <Property></Property> <Property name="label">徿¥åä½</Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="foodLocation"> <Property></Property> <Property name="label">ç²®é£äº§å°</Property> </PropertyDef> <PropertyDef name="foodYear"> <Property></Property> <Property name="label">ç²®é£å¹´ä»½</Property> </PropertyDef> <PropertyDef name="deOther"> <Property name="dataType">Double</Property> <Property name="label">æ£é</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="fullWeight"> <Property name="dataType">Double</Property> <Property name="label">满车称é</Property> <Property name="required">true</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="fullWeightTime"> <Property name="dataType">DateTime</Property> <Property name="label">满车称æ¶é´</Property> </PropertyDef> <PropertyDef name="fullWeightUser"> <Property></Property> <Property name="label">满车称é人</Property> </PropertyDef> <PropertyDef name="emptyWeight"> <Property name="dataType">Double</Property> <Property name="label">空车称é</Property> <Property name="required">true</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="emptyWeightTime"> <Property name="dataType">DateTime</Property> <Property name="label">空车称æ¶é´</Property> </PropertyDef> <PropertyDef name="emptyWeightUser"> <Property></Property> <Property name="label">空车称é人</Property> </PropertyDef> <PropertyDef name="netWeight"> <Property name="dataType">Double</Property> <Property name="label">åé</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="settleWeight"> <Property name="dataType">Double</Property> <Property name="label">ç»ç®åé</Property> <Property name="required">true</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="recordWeight"> <Property name="dataType">Double</Property> <Property name="label">å ¥åºéé</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="handleStart"> <Property name="dataType">Date</Property> <Property name="label">å¼ä»å¼å§æ¶é´</Property> </PropertyDef> <PropertyDef name="handleEnd"> <Property name="dataType">Date</Property> <Property name="label">å¼ä»ç»ææ¶é´</Property> </PropertyDef> <PropertyDef name="handleUser"> <Property></Property> <Property name="label">å¼ä»æä½äºº</Property> </PropertyDef> <PropertyDef name="completeTime"> <Property name="dataType">DateTime</Property> <Property name="label">宿æ¶é´</Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="completeUser"> <Property></Property> <Property name="label">å®æç¡®è®¤äºº</Property> </PropertyDef> <PropertyDef name="remarks"> <Property></Property> <Property name="label">夿³¨ä¿¡æ¯</Property> </PropertyDef> <PropertyDef name="deptId"> <Property></Property> <Property name="label">æå±ååº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">kqmc</Property> </Property> </PropertyDef> <PropertyDef name="foodVariety"> <Property></Property> <Property name="label">ç²®é£åç§</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="depotId"> <Property></Property> <Property name="label">è£ å¸ä»åº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="type"> <Property name="label">åºå ¥åºç±»å</Property> <Property name="mapping"> <Property name="mapValues"> <Collection> <Entity> <Property name="name">åºåº</Property> <Property name="value">OUT</Property> </Entity> <Entity> <Property name="name">å ¥åº</Property> <Property name="value">IN</Property> </Entity> </Collection> </Property> <Property name="keyProperty">value</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="foodLevel"> <Property></Property> <Property name="label">ç²®é£ç级</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#triggerFoodLevel").getResult()}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> </PropertyDef> <PropertyDef name="checkUser"> <Property></Property> <Property name="label">è´¨æ£äºº</Property> </PropertyDef> <PropertyDef name="price"> <Property name="dataType">double</Property> <Property name="label">ç²®é£å®ä»·</Property> <Property name="displayFormat">0.00 å /å ¬æ¤</Property> </PropertyDef> <PropertyDef name="noticeId"> <Property></Property> <Property name="label">éç¥åç¼ç </Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="foodLocationId"> <Property></Property> <Property name="label">产å°å称代ç </Property> </PropertyDef> <PropertyDef name="checkTime"> <Property name="dataType">DateTime</Property> <Property name="label">è´¨æ£æ¶é´</Property> </PropertyDef> <PropertyDef name="perWet"> <Property name="dataType">Double</Property> <Property name="label">æ°´å</Property> <Property name="displayFormat">0.00 %</Property> </PropertyDef> <PropertyDef name="perImpurity"> <Property name="dataType">Double</Property> <Property name="label">æè´¨</Property> <Property name="displayFormat">0.00 %</Property> </PropertyDef> <PropertyDef name="settleMoney"> <Property name="dataType">Double</Property> <Property name="label">ç»ç®éé¢</Property> <Property name="displayFormat">0.00 å </Property> </PropertyDef> <PropertyDef name="settleTag"> <Property></Property> <Property name="label">æ¯å¦ç»ç®</Property> <Property name="mapping"> <Property name="mapValues"> <Collection> <Entity> <Property name="name">æªç»ç®</Property> <Property name="value">N</Property> </Entity> <Entity> <Property name="name">å·²ç»ç®</Property> <Property name="value">Y</Property> </Entity> </Collection> </Property> <Property name="keyProperty">value</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="settleTime"> <Property name="dataType">DateTime</Property> <Property name="label">ç»ç®æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="createTime"> <Property name="dataType">DateTime</Property> <Property name="label">å建æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="createBy"> <Property></Property> <Property name="label">å建人</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateTime"> <Property name="dataType">DateTime</Property> <Property name="label">æ´æ°æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateBy"> <Property></Property> <Property name="label">æ´æ°äºº</Property> <Property name="readOnly">true</Property> </PropertyDef> </DataType> </Model> <View layout="padding:10"> <ClientEvent name="onReady">var deptId = window.parent.DEPT_ID;//ç¶é¡µé¢ä¸çååºç¼ç 
 //é»è®¤æ¥è¯¢æ¥è¯¢ææ¡ä»¶
 view.get("#dsQuery").insert({
 deptId:deptId
 });
 /**
 * æ¥è¯¢
 */
 query = function(){
 var data = view.get("#dsQuery.data");
 view.get("#dsMain").set("parameter",data).flushAsync();
 }
 query();
 /**
 * èªå¨è®¡ç®
 * @param name
 */
 payMoney = function () {
 
 var curData = view.get("#dsMain.data:#");
 var price = curData.get("price");
 var settleWeight = curData.get("settleWeight");
 var settleMoney = Number(price)*Number(settleWeight);
 
 curData.set("settleMoney", settleMoney);
 };
 //æå°ç»ç®å
 printPay = function () {
 var data = view.get("#dataGridSettle").get("selection");
 if (!data) return;
 if ("DEL" == data.get("recordStatus")) {
 $alert("å¼å¸¸å¤ççä¿¡æ¯ä¸æ¯ææå°ï¼");
 return;
 }
 if ("RECORD" != data.get("progress")) {
 $alert("æµç¨æªå®æä¸æ¯ææå°ï¼");
 return;
 }
 if ("N" == data.get("settleTag")) {
 $alert("æªç»ç®çæ°æ®ä¸æ¯ææå°ï¼");
 return;
 }
 view.get("#ajaxPrint").set("parameter", data).execute(function (result) {
 printBill(result);
 });
 };
 /**
 * æå°
 */
 printBill = function (htmlStr) {
 var LODOP = CLODOP;
 LODOP.PRINT_INIT("ç§°éå");
 LODOP.SET_PRINT_PAGESIZE(1, 2100, 1400, "A4");
 LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", htmlStr);
 LODOP.PREVIEW();
 };
 </ClientEvent> <Property name="packages">font-awesome,css-common</Property> <Property name="javaScriptFile">./static/js/plugins/lodop/LodopFuncs.js</Property> <DataSet id="dsMain"> <Property name="dataProvider">inoutSettlePR#pageInoutSettleData</Property> <Property name="pageSize">20</Property> <Property name="dataType">[dtMain]</Property> <Property name="loadMode">manual</Property> </DataSet> <DataSet id="dsQuery"> <Property name="dataType">dtQuery</Property> </DataSet> <Container> <Property name="className">c-param</Property> <AutoForm> <Property name="cols">*,*,*,*,90,90</Property> <Property name="dataSet">dsQuery</Property> <Property name="labelAlign">right</Property> <Property name="labelWidth">100</Property> <AutoFormElement> <Property name="name">type</Property> <Property name="property">type</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">settleTag</Property> <Property name="property">settleTag</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">start</Property> <Property name="property">start</Property> <Property name="trigger">defaultDateDropDown</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">end</Property> <Property name="property">end</Property> <Property name="trigger">defaultDateDropDown</Property> <Editor/> </AutoFormElement> <Button> <ClientEvent name="onClick">query();
</ClientEvent> <Property name="caption">æç´¢</Property> <Property name="iconClass">fa fa-search</Property> <Property name="exClassName">btn-q1</Property> </Button> <Button> <ClientEvent name="onClick">var deptId = window.parent.DEPT_ID;//ç¶é¡µé¢ä¸çååºç¼ç 
 view.get("#dsQuery").setData({deptId:deptId});</ClientEvent> <Property name="caption">éç½®</Property> <Property name="exClassName">btn-q2</Property> <Property name="iconClass">fa fa-refresh</Property> </Button> </AutoForm> </Container> <Container> <Property name="className">c-data</Property> <ToolBar> <ToolBarButton> <ClientEvent name="onClick">var data = view.get("#dataGridSettle").get("selection");
 if(data){
 view.get("#dialogMain").show();
 }else{
 $notify("è¯·éæ©éè¦ç»ç®çä¿¡æ¯â¦â¦");
 }</ClientEvent> <Property name="caption">ç»ç®</Property> <Property name="exClassName">btn1</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-plus</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var data = view.get("#dataGridSettle").get("selection");
 if(data){
 view.get("#dialogMain").show();
 }else{
 $notify("è¯·éæ©éè¦ä¿®æ¹çä¿¡æ¯â¦â¦");
 }</ClientEvent> <Property name="caption">æ¥ç</Property> <Property name="exClassName">btn2</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-pencil-square-o</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var data = view.get("#dataGridSettle").get("selection");
 if (!data) {
 $alert("请å éæ©æ°æ®ï¼");
 return;
 }
 
 printPay();
 </ClientEvent> <Property name="caption">æå°ç»ç®å</Property> <Property name="exClassName">btn4</Property> <Property name="iconClass">fa fa-print</Property> <Property name="width">120</Property> </ToolBarButton> </ToolBar> <DataGrid id="dataGridSettle" layoutConstraint="padding:8"> <ClientEvent name="onDataRowClick">view.get("#dataGridSettle").set("selection",arg.data);</ClientEvent> <Property name="dataSet">dsMain</Property> <Property name="selectionMode">singleRow</Property> <Property name="readOnly">true</Property> <RowSelectorColumn/> <RowNumColumn> <Property name="width">50</Property> </RowNumColumn> <DataColumn name="id"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.dom.style.color = "#f67d06";
 arg.processDefault = true;</ClientEvent> <Property name="property">id</Property> <Property name="align">center</Property> <Property name="width">150</Property> </DataColumn> <DataColumn name="type"> <Property name="property">type</Property> <Property name="align">center</Property> <Property name="width">90</Property> </DataColumn> <DataColumn name="plateNum"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">plateNum</Property> <Property name="align">center</Property> </DataColumn> <DataColumn> <Property name="property">customerName</Property> <Property name="name">customerName</Property> <Property name="align">center</Property> <Property name="caption">徿¥åä½</Property> </DataColumn> <DataColumn name="depotId"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">depotId</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="foodVariety"> <Property name="property">foodVariety</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="settleTag"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">settleTag</Property> <Property name="align">center</Property> <Property name="width">100</Property> </DataColumn> <DataColumn name="settleWeight"> <Property name="property">settleWeight</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="price"> <Property name="property">price</Property> <Property name="caption">åä»·</Property> <Property name="align">center</Property> <Property name="width">120</Property> </DataColumn> <DataColumn name="settleMoney"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">settleMoney</Property> <Property name="align">center</Property> <Property name="width">150</Property> </DataColumn> <DataColumn name="settleTime"> <Property name="property">settleTime</Property> <Property name="align">center</Property> <Property name="width">180</Property> </DataColumn> </DataGrid> <ToolBar layoutConstraint="bottom"> <Fill/> <DataPilot layoutConstraint="right"> <Property name="itemCodes">pageSize,pages</Property> <Property name="dataSet">dsMain</Property> </DataPilot> </ToolBar> </Container> <Dialog id="dialogMain" layout="regionPadding:8"> <Property name="iconClass">fa fa-tasks</Property> <Property name="caption">ç»ç®ä¿¡æ¯</Property> <Property name="width">1200</Property> <Property name="closeable">false</Property> <Buttons> <Button id="btnOK"> <ClientEvent name="onClick">var data = view.get("#dsMain.data:#");
 if(data.validate() != 'ok'){
 $notify("æ°æ®æ ¡éªå¤±è´¥ï¼ï¼");
 return;
 }
 view.get("#uaSave").execute(function(result){
 if(result){
 $alert(result);
 return;
 }
 $notify("æ°æ®æ§è¡å®æï¼ï¼");
 self.get("parent").hide();
 });</ClientEvent> <Property name="caption">ç¡®å®ä¿å</Property> <Property name="iconClass">fa fa-check-circle</Property> <Property name="exClassName">btn1</Property> <Property name="width">120</Property> </Button> <Button> <ClientEvent name="onClick">self.get("parent").close();</ClientEvent> <Property name="caption">åæ¶æä½</Property> <Property name="exClassName">btn3</Property> <Property name="iconClass">fa fa-times-circle</Property> <Property name="width">120</Property> </Button> </Buttons> <Children> <FieldSet layout="padding:5"> <Property name="caption">åºæ¬ä¿¡æ¯</Property> <Buttons/> <Children> <AutoForm> <Property name="dataSet">dsMain</Property> <Property name="cols">*,*,*</Property> <Property name="labelAlign">right</Property> <Property name="labelSeparator">ï¼</Property> <Property name="labelWidth">100</Property> <AutoFormElement> <Property name="name">id</Property> <Property name="property">id</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">plateNum</Property> <Property name="property">plateNum</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">depotId</Property> <Property name="property">depotId</Property> <Property name="readOnly">true</Property> <Property name="label">è£ å¸ä»åº</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">foodVariety</Property> <Property name="property">foodVariety</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">perWet</Property> <Property name="property">perWet</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">perImpurity</Property> <Property name="property">perImpurity</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">foodLocation</Property> <Property name="property">foodLocation</Property> <Property name="trigger">ddDicArea</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="label">客æ·åç§°</Property> <Property name="property">customerName</Property> <Property name="editable">false</Property> <Property name="trigger">ddNotice</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> </AutoForm> </Children> </FieldSet> <FieldSet layout="padding:5"> <Property name="caption">ééä¿¡æ¯ï¼åä½ï¼KGï¼</Property> <Buttons/> <Children> <AutoForm> <Property name="dataSet">dsMain</Property> <Property name="cols">*,50,*,50,*,50</Property> <Property name="labelAlign">right</Property> <Property name="labelWidth">100</Property> <Property name="labelSeparator">ï¼</Property> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">fullWeight</Property> <Property name="property">fullWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">emptyWeight</Property> <Property name="property">emptyWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">netWeight</Property> <Property name="property">netWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">deOther</Property> <Property name="property">deOther</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">settleWeight</Property> <Property name="property">settleWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> </AutoForm> </Children> </FieldSet> <FieldSet layout="padding:5"> <Property name="caption">ç»ç®ä¿¡æ¯</Property> <Buttons/> <Children> <AutoForm> <Property name="dataSet">dsMain</Property> <Property name="cols">*,*,*</Property> <Property name="labelAlign">right</Property> <Property name="labelSeparator">ï¼</Property> <Property name="labelWidth">100</Property> <AutoFormElement> <ClientEvent name="onBlur">payMoney();</ClientEvent> <Property name="name">price</Property> <Property name="property">price</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">settleMoney</Property> <Property name="property">settleMoney</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">settleTime</Property> <Property name="property">settleTime</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:3"> <Property name="name">remarks</Property> <Property name="property">remarks</Property> <Editor/> </AutoFormElement> </AutoForm> </Children> </FieldSet> </Children> <Tools/> </Dialog> <UpdateAction id="uaSave"> <Property name="dataResolver">inoutSettlePR#saveSettle</Property> <UpdateItem> <Property name="dataSet">dsMain</Property> <Property name="dataPath">[#current]</Property> <Property name="validateData">false</Property> </UpdateItem> </UpdateAction> <AjaxAction id="ajaxPrint"> <Property name="service">inoutSettlePR#printPay</Property> <Property name="executingMessage">æ£å¨æ§è¡æå°â¦â¦</Property> <Property name="async">false</Property> </AjaxAction> <CustomDropDown id="ddNotice"> <Property name="minHeight">400</Property> <Property name="assignmentMap">noticeId=id,customerName=customerName</Property> <Property name="minWidth">1000</Property> <Property name="autoOpen">true</Property> <Container layout="regionPadding:5"> <DataSet id="dsNotice"> <Property name="dataProvider">inoutNoticePR#queryNoticeByKey</Property> <Property name="parameter"> <Entity> <Property name="type">${request.getParameter('type')}</Property> </Entity> </Property> <Property name="dataType">[dtNoticeDto]</Property> </DataSet> <Container layout="hbox regionPadding:5"> <TextEditor id="key3"> <Property name="blankText"> -- 客æ·åç§°æç¼ç --</Property> <Property name="width">200</Property> </TextEditor> <Button> <ClientEvent name="onClick">var key = view.get("#key3.value");
 var type = "${request.getParameter('type')}";
 view.get("#dsNotice").set("parameter",{key: key,type: type}).flushAsync();</ClientEvent> <Property name="caption">æ¥è¯¢</Property> <Property name="exClassName">btn1</Property> <Property name="iconClass">fa fa-search</Property> </Button> <Button> <ClientEvent name="onClick">var data = view.get("#dsNotice.data:#");
 if(data){
 view.get("#ddNotice").close(data.toJSON());
 }</ClientEvent> <Property name="iconClass">fa fa-check</Property> <Property name="exClassName">btn2</Property> <Property name="caption">ç¡®å®</Property> </Button> </Container> <DataGrid> <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsNotice.data:#");
 if(data){
 view.get("#ddNotice").close(data.toJSON());
 }</ClientEvent> <Property name="dataSet">dsNotice</Property> <Property name="readOnly">true</Property> <DataColumn name="name"> <Property name="property">name</Property> <Property name="align">center</Property> <Property name="width">100</Property> </DataColumn> <DataColumn> <Property name="property">customerName</Property> <Property name="align">center</Property> <Property name="name">customerName</Property> <Property name="width">240</Property> </DataColumn> <DataColumn name="foodVariety"> <Property name="property">foodVariety</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="year"> <Property name="property">year</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="contract"> <Property name="property">contract</Property> <Property name="align">center</Property> <Property name="width">300</Property> </DataColumn> </DataGrid> </Container> </CustomDropDown> <CustomDropDown id="ddDicArea"> <Property name="minHeight">500</Property> <Property name="minWidth">500</Property> <Property name="assignmentMap">foodLocation=name,foodLocationId=code</Property> <Container layout="regionPadding:5"> <DataSet id="dsDicArea"> <Property name="dataProvider">dicAreaPR#pageList</Property> <Property name="parameter"></Property> <Property name="dataType">[dtArea]</Property> <Property name="pageSize">1000</Property> </DataSet> <Container layout="hbox regionPadding:5"> <TextEditor id="key2"> <Property name="blankText"> -åç§°æç®æ¼ï¼åäº¬å¸ bjs -</Property> <Property name="width">200</Property> </TextEditor> <Button> <ClientEvent name="onClick">var key = view.get("#key2.value");
 view.get("#dsDicArea").set("parameter",{key:key}).flushAsync();</ClientEvent> <Property name="caption">æ¥è¯¢</Property> <Property name="iconClass">fa fa-search</Property> <Property name="exClassName">btn1</Property> </Button> <Button> <ClientEvent name="onClick">var data = view.get("#dsDicArea.data:#");
 if(data){
 view.get("#ddDicArea").close(data.toJSON());
 }</ClientEvent> <Property name="iconClass">fa fa-check</Property> <Property name="exClassName">btn2</Property> <Property name="caption">ç¡®å®</Property> </Button> </Container> <DataGrid> <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsDicArea.data:#");
 if(data){
 view.get("#ddDicArea").close(data.toJSON());
 }</ClientEvent> <Property name="dataSet">dsDicArea</Property> <Property name="readOnly">true</Property> <DataColumn name="name"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">name</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="code"> <Property name="property">code</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="simple"> <Property name="property">simple</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> </DataGrid> <DataPilot layoutConstraint="bottom"> <Property name="dataSet">dsDicArea</Property> </DataPilot> </Container> </CustomDropDown> <YearDropDown id="yearDropDown"/> </View> </ViewConfig> fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettlePR.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,83 @@ package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.bstek.dorado.data.provider.Page; import com.fzzy.igds.constant.Constant; import com.fzzy.igds.data.InoutParam; import com.fzzy.igds.domain.InoutRecord; import com.fzzy.igds.service.InoutRecordService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Date; /** * @Description åºå ¥åºç»ç® * @Author CZT * @Date 2025/12/8 10:24 */ @Component public class InoutSettlePR { @Resource private InoutRecordService inoutRecordService; /** * æ¥è¯¢å¾ ç»ç®çæ°æ® * inoutSettlePR#pageInoutSettleData * * @param page * @param param */ @DataProvider public void pageInoutSettleData(Page<InoutRecord> page, InoutParam param) { com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutRecord> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize()); if(null == param) { param = new InoutParam(); } inoutRecordService.listPageInout(corePage, param); // éæ°å°è£ page.setEntities(corePage.getRecords()); page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal()))); } /** * ä¿®æ¹æ°æ® inoutSettlePR#saveSettle */ @DataResolver public String saveSettle(InoutRecord data) { if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) { return "ç³»ç»ï¼å·²ç»å é¤çæ°æ®ä¸æ¯æä¿®æ¹ï¼"; } if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) { return "ç³»ç»ï¼æªç»ææµç¨çæ°æ®ä¸æ¯æä¿®æ¹ï¼"; } if(data.getSettleMoney() > 0){ data.setSettleTag(Constant.YN_Y); data.setSettleTime(new Date()); } int i = inoutRecordService.updateInoutRecord(data); if (i > 0) { return null; } else { return "ä¿å失败ï¼"; } } /** * inoutDataPR#printPay è·åç»ç®æå°åä¿¡æ¯ * * @param data * @return */ @Expose public String printPay(InoutRecord data) { return inoutRecordService.printPay(data); } } fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,582 @@ <?xml version="1.0" encoding="UTF-8"?> <ViewConfig> <Arguments/> <Context/> <Model> <DataType name="dtQuery"> <Property name="creationType">com.fzzy.igds.domain.InoutStockChange</Property> <PropertyDef name="depotIdIn"> <Property name="label">åå ¥ä»åº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="depotIdOut"> <Property name="label">ååºä»åº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="changeStartDate"> <Property name="label">å¼å§æ¶é´</Property> <Property name="dataType">Date</Property> </PropertyDef> <PropertyDef name="changeEndDate"> <Property name="label">æªæ¢æ¶é´</Property> <Property name="dataType">Date</Property> </PropertyDef> </DataType> <DataType name="dtMain"> <Property name="creationType">com.fzzy.igds.domain.InoutStockChange</Property> <PropertyDef name="id"> <Property></Property> <Property name="label">åä»åå·</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="companyId"> <Property></Property> <Property name="label">ç»ç»ç¼ç </Property> </PropertyDef> <PropertyDef name="deptId"> <Property></Property> <Property name="label">æå±ååº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">kqmc</Property> </Property> </PropertyDef> <PropertyDef name="type"> <Property name="label">åä»ç±»å</Property> <Property name="mapping"> <Property name="mapValues"> <Collection> <Entity> <Property name="name">åä»</Property> <Property name="value">0</Property> </Entity> <Entity> <Property name="name">ç§»åº</Property> <Property name="value">1</Property> </Entity> </Collection> </Property> <Property name="keyProperty">value</Property> <Property name="valueProperty">name</Property> </Property> </PropertyDef> <PropertyDef name="foodVariety"> <Property></Property> <Property name="label">ç²®é£åç§</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</Property> <Property name="keyProperty">dictValue</Property> <Property name="valueProperty">dictLabel</Property> </Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="depotIdIn"> <Property></Property> <Property name="label">åå ¥ä»åº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="depotIdOut"> <Property></Property> <Property name="label">ååºä»åº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("depotPR#getAllCache").getResult()}</Property> <Property name="keyProperty">id</Property> <Property name="valueProperty">name</Property> </Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="changeDate"> <Property name="dataType">Date</Property> <Property name="label">å仿¥æ</Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="changeStartDate"> <Property name="dataType">Date</Property> <Property name="label">åä»å¼å§æ¥æ</Property> </PropertyDef> <PropertyDef name="changeEndDate"> <Property name="dataType">Date</Property> <Property name="label">åä»ç»ææ¥æ</Property> </PropertyDef> <PropertyDef name="number"> <Property name="dataType">Double</Property> <Property name="label">å仿°é</Property> <Property name="displayFormat">0.0 KG</Property> </PropertyDef> <PropertyDef name="stockUser"> <Property></Property> <Property name="label">åä»äºº</Property> </PropertyDef> <PropertyDef name="remarks"> <Property></Property> <Property name="label">夿³¨ä¿¡æ¯</Property> </PropertyDef> <PropertyDef name="createTime"> <Property name="dataType">DateTime</Property> <Property name="label">å建æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="createBy"> <Property></Property> <Property name="label">å建人</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateTime"> <Property name="dataType">DateTime</Property> <Property name="label">æ´æ°æ¶é´</Property> <Property name="readOnly">true</Property> </PropertyDef> <PropertyDef name="updateBy"> <Property></Property> <Property name="label">æ´æ°äºº</Property> <Property name="readOnly">true</Property> </PropertyDef> </DataType> </Model> <View layout="padding:10"> <ClientEvent name="onReady">var deptId = window.parent.DEPT_ID;//ç¶é¡µé¢ä¸çååºç¼ç 
 //é»è®¤æ¥è¯¢æ¥è¯¢ææ¡ä»¶
 view.get("#dsQuery").insert({
 deptId:deptId
 });
 /**
 * æ¥è¯¢
 */
 query = function(){
 var data = view.get("#dsQuery.data");
 view.get("#dsMain").set("parameter",data).flushAsync();
 }
 query();
 </ClientEvent> <Property name="packages">font-awesome,css-common</Property> <DataSet id="dsMain"> <Property name="dataProvider">inoutStockChangePR#pageData</Property> <Property name="pageSize">20</Property> <Property name="dataType">[dtMain]</Property> <Property name="loadMode">manual</Property> </DataSet> <DataSet id="dsQuery"> <Property name="dataType">dtQuery</Property> </DataSet> <Container> <Property name="className">c-param</Property> <AutoForm> <Property name="cols">*,*,*,*,90,90</Property> <Property name="dataSet">dsQuery</Property> <Property name="labelAlign">right</Property> <Property name="labelWidth">100</Property> <AutoFormElement> <Property name="name">depotIdIn</Property> <Property name="property">depotIdIn</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">depotIdOut</Property> <Property name="property">depotIdOut</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">changeStartDate</Property> <Property name="property">changeStartDate</Property> <Property name="trigger">defaultDateDropDown</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">changeEndDate</Property> <Property name="property">changeEndDate</Property> <Property name="trigger">defaultDateDropDown</Property> <Editor/> </AutoFormElement> <Button> <ClientEvent name="onClick">query();
</ClientEvent> <Property name="caption">æç´¢</Property> <Property name="iconClass">fa fa-search</Property> <Property name="exClassName">btn-q1</Property> </Button> <Button> <ClientEvent name="onClick">var deptId = window.parent.DEPT_ID;//ç¶é¡µé¢ä¸çååºç¼ç 
 view.get("#dsQuery").setData({deptId:deptId});</ClientEvent> <Property name="caption">éç½®</Property> <Property name="exClassName">btn-q2</Property> <Property name="iconClass">fa fa-refresh</Property> </Button> </AutoForm> </Container> <Container> <Property name="className">c-data</Property> <ToolBar> <ToolBarButton> <ClientEvent name="onClick">view.get("#dsMain").insert();
 view.get("#dialogMain").show();</ClientEvent> <Property name="caption">æ°å¢</Property> <Property name="exClassName">btn1</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-plus</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var data = view.get("#dataGridData").get("selection");
 if(data){
 view.get("#dialogMain").show();
 }else{
 $notify("è¯·éæ©éè¦ä¿®æ¹çä¿¡æ¯â¦â¦");
 }</ClientEvent> <Property name="caption">ä¿®æ¹</Property> <Property name="exClassName">btn2</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-pencil-square-o</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var select = view.get("#dataGridData").get("selection");
 if(select){
 view.get("#ajaxDel").set("parameter",select).execute(function(result){
 if(result){
 $alert(result);
 }else{
 query();
 }
 }); }else{
 $notify("è¯·éæ©éè¦å é¤çä¿¡æ¯â¦â¦");
 }</ClientEvent> <Property name="caption">å é¤</Property> <Property name="exClassName">btn3</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-times</Property> </ToolBarButton> </ToolBar> <DataGrid id="dataGridData" layoutConstraint="padding:8"> <ClientEvent name="onDataRowClick">view.get("#dataGridData").set("selection",arg.data);</ClientEvent> <Property name="dataSet">dsMain</Property> <Property name="selectionMode">singleRow</Property> <Property name="readOnly">true</Property> <RowSelectorColumn/> <RowNumColumn> <Property name="width">50</Property> </RowNumColumn> <DataColumn name="id"> <Property name="property">id</Property> <Property name="align">center</Property> <Property name="width">150</Property> </DataColumn> <DataColumn name="type"> <Property name="property">type</Property> <Property name="align">center</Property> <Property name="width">90</Property> </DataColumn> <DataColumn name="depotIdIn"> <Property name="property">depotIdIn</Property> <Property name="align">center</Property> </DataColumn> <DataColumn> <Property name="property">depotIdOut</Property> <Property name="name">depotIdOut</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="foodVariety"> <Property name="property">foodVariety</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="changeDate"> <Property name="property">changeDate</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="number"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">number</Property> <Property name="align">center</Property> <Property name="width">100</Property> </DataColumn> <DataColumn name="stockUser"> <Property name="property">stockUser</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="updateTime"> <Property name="property">updateTime</Property> <Property name="align">center</Property> <Property name="width">160</Property> </DataColumn> </DataGrid> <ToolBar layoutConstraint="bottom"> <Fill/> <DataPilot layoutConstraint="right"> <Property name="itemCodes">pageSize,pages</Property> <Property name="dataSet">dsMain</Property> </DataPilot> </ToolBar> </Container> <Dialog id="dialogMain" layout="regionPadding:8"> <Property name="iconClass">fa fa-tasks</Property> <Property name="caption">åä»ä¿¡æ¯</Property> <Property name="width">1000</Property> <Property name="closeable">false</Property> <Buttons> <Button id="btnOK"> <ClientEvent name="onClick">var data = view.get("#dsMain.data:#");
 if(data.validate() != 'ok'){
 $notify("æ°æ®æ ¡éªå¤±è´¥ï¼ï¼");
 return;
 }
 view.get("#uaSave").execute(function(result){
 if(result){
 $alert(result);
 return;
 }
 $notify("æ°æ®æ§è¡å®æï¼ï¼");
 query();
 self.get("parent").hide();
 });</ClientEvent> <Property name="caption">ç¡®å®ä¿å</Property> <Property name="iconClass">fa fa-check-circle</Property> <Property name="exClassName">btn1</Property> <Property name="width">120</Property> </Button> <Button> <ClientEvent name="onClick">self.get("parent").close();</ClientEvent> <Property name="caption">åæ¶æä½</Property> <Property name="exClassName">btn3</Property> <Property name="iconClass">fa fa-times-circle</Property> <Property name="width">120</Property> </Button> </Buttons> <Children> <AutoForm> <Property name="dataSet">dsMain</Property> <Property name="cols">*,*</Property> <Property name="labelAlign">right</Property> <Property name="labelSeparator">ï¼</Property> <Property name="labelWidth">120</Property> <AutoFormElement> <Property name="name">id</Property> <Property name="property">id</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">type</Property> <Property name="property">type</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">changeDate</Property> <Property name="property">changeDate</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">deptId</Property> <Property name="property">deptId</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">depotIdOut</Property> <Property name="property">depotIdOut</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">depotIdIn</Property> <Property name="property">depotIdIn</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">foodVariety</Property> <Property name="property">foodVariety</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">number</Property> <Property name="property">number</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">changeStartDate</Property> <Property name="property">changeStartDate</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">changeEndDate</Property> <Property name="property">changeEndDate</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">stockUser</Property> <Property name="property">stockUser</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">updateTime</Property> <Property name="property">updateTime</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">remarks</Property> <Property name="property">remarks</Property> <Editor/> </AutoFormElement> </AutoForm> </Children> <Tools/> </Dialog> <UpdateAction id="uaSave"> <Property name="dataResolver">inoutStockChangePR#saveData</Property> <UpdateItem> <Property name="dataSet">dsMain</Property> <Property name="dataPath">[#current]</Property> <Property name="validateData">false</Property> </UpdateItem> </UpdateAction> <AjaxAction id="ajaxDel"> <Property name="confirmMessage">ç¡®å®è¦å é¤åï¼</Property> <Property name="service">inoutStockChangePR#delData</Property> </AjaxAction> <CustomDropDown id="ddNotice"> <Property name="minHeight">400</Property> <Property name="assignmentMap">noticeId=id,customerName=customerName</Property> <Property name="minWidth">1000</Property> <Property name="autoOpen">true</Property> <Container layout="regionPadding:5"> <DataSet id="dsNotice"> <Property name="dataProvider">inoutNoticePR#queryNoticeByKey</Property> <Property name="parameter"> <Entity> <Property name="type">${request.getParameter('type')}</Property> </Entity> </Property> <Property name="dataType">[dtNoticeDto]</Property> </DataSet> <Container layout="hbox regionPadding:5"> <TextEditor id="key3"> <Property name="blankText"> -- 客æ·åç§°æç¼ç --</Property> <Property name="width">200</Property> </TextEditor> <Button> <ClientEvent name="onClick">var key = view.get("#key3.value");
 var type = "${request.getParameter('type')}";
 view.get("#dsNotice").set("parameter",{key: key,type: type}).flushAsync();</ClientEvent> <Property name="caption">æ¥è¯¢</Property> <Property name="exClassName">btn1</Property> <Property name="iconClass">fa fa-search</Property> </Button> <Button> <ClientEvent name="onClick">var data = view.get("#dsNotice.data:#");
 if(data){
 view.get("#ddNotice").close(data.toJSON());
 }</ClientEvent> <Property name="iconClass">fa fa-check</Property> <Property name="exClassName">btn2</Property> <Property name="caption">ç¡®å®</Property> </Button> </Container> <DataGrid> <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsNotice.data:#");
 if(data){
 view.get("#ddNotice").close(data.toJSON());
 }</ClientEvent> <Property name="dataSet">dsNotice</Property> <Property name="readOnly">true</Property> <DataColumn name="name"> <Property name="property">name</Property> <Property name="align">center</Property> <Property name="width">100</Property> </DataColumn> <DataColumn> <Property name="property">customerName</Property> <Property name="align">center</Property> <Property name="name">customerName</Property> <Property name="width">240</Property> </DataColumn> <DataColumn name="foodVariety"> <Property name="property">foodVariety</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="year"> <Property name="property">year</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="contract"> <Property name="property">contract</Property> <Property name="align">center</Property> <Property name="width">300</Property> </DataColumn> </DataGrid> </Container> </CustomDropDown> <CustomDropDown id="ddDicArea"> <Property name="minHeight">500</Property> <Property name="minWidth">500</Property> <Property name="assignmentMap">foodLocation=name,foodLocationId=code</Property> <Container layout="regionPadding:5"> <DataSet id="dsDicArea"> <Property name="dataProvider">dicAreaPR#pageList</Property> <Property name="parameter"></Property> <Property name="dataType">[dtArea]</Property> <Property name="pageSize">1000</Property> </DataSet> <Container layout="hbox regionPadding:5"> <TextEditor id="key2"> <Property name="blankText"> -åç§°æç®æ¼ï¼åäº¬å¸ bjs -</Property> <Property name="width">200</Property> </TextEditor> <Button> <ClientEvent name="onClick">var key = view.get("#key2.value");
 view.get("#dsDicArea").set("parameter",{key:key}).flushAsync();</ClientEvent> <Property name="caption">æ¥è¯¢</Property> <Property name="iconClass">fa fa-search</Property> <Property name="exClassName">btn1</Property> </Button> <Button> <ClientEvent name="onClick">var data = view.get("#dsDicArea.data:#");
 if(data){
 view.get("#ddDicArea").close(data.toJSON());
 }</ClientEvent> <Property name="iconClass">fa fa-check</Property> <Property name="exClassName">btn2</Property> <Property name="caption">ç¡®å®</Property> </Button> </Container> <DataGrid> <ClientEvent name="onDataRowDoubleClick">var data = view.get("#dsDicArea.data:#");
 if(data){
 view.get("#ddDicArea").close(data.toJSON());
 }</ClientEvent> <Property name="dataSet">dsDicArea</Property> <Property name="readOnly">true</Property> <DataColumn name="name"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">name</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="code"> <Property name="property">code</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> <DataColumn name="simple"> <Property name="property">simple</Property> <Property name="readOnly">true</Property> <Property name="align">center</Property> </DataColumn> </DataGrid> <DataPilot layoutConstraint="bottom"> <Property name="dataSet">dsDicArea</Property> </DataPilot> </Container> </CustomDropDown> <YearDropDown id="yearDropDown"/> </View> </ViewConfig> fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChangePR.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,77 @@ package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.bstek.dorado.data.provider.Page; import com.fzzy.igds.domain.Camera; import com.fzzy.igds.domain.InoutStockChange; import com.fzzy.igds.service.InoutStockChangeService; import com.fzzy.igds.service.SecCameraService; import jdk.nashorn.internal.ir.annotations.Reference; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * @Description * @Author CZT * @Date 2025/12/08 17:48 */ @Slf4j @Component public class InoutStockChangePR { @Resource private InoutStockChangeService inoutStockChangeService; /** * inoutStockChangePR#pageData æ ¹æ®æ¡ä»¶è·åææçæåæºé ç½®ä¿¡æ¯ * * @param param */ @DataProvider public void pageData(Page<InoutStockChange> page, InoutStockChange param) { com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutStockChange> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize()); if(null == param) { param = new InoutStockChange(); } InoutStockChange data = new InoutStockChange(); BeanUtils.copyProperties(param, data); inoutStockChangeService.listPageData(corePage, data); // éæ°å°è£ page.setEntities(corePage.getRecords()); page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal()))); } /** * inoutStockChangePR#saveData * * @param data */ @DataResolver public void saveData(InoutStockChange data) { InoutStockChange item = new InoutStockChange(); BeanUtils.copyProperties(data, item); inoutStockChangeService.saveData(item); } /** * inoutStockChangePR#delData * * @param data * @return */ @Expose public String delData(InoutStockChange data) { InoutStockChange item = new InoutStockChange(); BeanUtils.copyProperties(data, item); return inoutStockChangeService.delData(item); } } fzzy-igdss-web/src/main/resources/templates/print/pay.html
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ <!DOCTYPE html> <html lang='zh-cn'> <head> <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'> <title>ç»ç®å</title> <style> body {text-align: center;padding: 10px;font-family: 'å®ä½';} .tit {font-size: 24px;flex-grow: 1;text-align: center;} .div-tit {padding-top: 6px;} table {width: 100%;border-right: 1px solid;border-bottom: 1px solid;font-size: 14px;border-collapse: collapse;} table td {border-left: 1px solid;border-top: 1px solid;height: 32px;} .sp1 {width: 33%;float: left;padding-bottom: 5px;} .sp2 {width: 25%;float: left;text-align: center;} .sp3 {width: 16.6%;float: left;text-align: center;} .txt-left {text-align: left;} .txt-center {text-align: center;} .txt-right {text-align: right;} </style> </head> <body> <h1 class='tit'><u>[billTitle]</u></h1> <div class='div-tit'><span class='sp1 txt-left'>åºåºåç§°ï¼[deptId]</span><span class='sp1 txt-center'>åæ®å·:[id]</span><span class='sp1 txt-right'>æå°æ¶é´ï¼[payTime]</span></div> <table cellspacing='0' cellpadding='0'> <tr> <td>客æ·åç§°</td> <td colspan='7'>[customerName]</td> </tr> <tr> <td width='12.5%'>æ¿è¿äºº</td> <td width='37.5%' colspan='3'>[userName]</td> <td width='12.5%'>èç³»çµè¯</td> <td width='37.5%' colspan='3'>[userContact]</td> </tr> <tr> <td>身份è¯å·ç </td> <td colspan='3'>[userId]</td> <td>车çå·</td> <td colspan='3'>[plateNum]</td> </tr> <tr> <td>ä»åº</td> <td colspan='3'>[depotId]</td> <td>ç²®é£åç§°</td> <td colspan='3'>[foodVariety]</td> </tr> <tr> <td>夿³¨</td> <td colspan="7">[remark]</td> </tr> <tr> <td colspan="8">计éä¿¡æ¯</td> </tr> <tr> <td>æ¯é</td> <td colspan='2'>[fullWeight]å ¬æ¤</td> <td>ç®é</td> <td colspan='2'>[emptyWeight]å ¬æ¤</td> <td>æ£é</td> <td colspan='2'>[deOther]å ¬æ¤</td> </tr> <tr> <td colspan="8">ç»ç®ä¿¡æ¯</td> </tr> <tr> <td>åä»·</td> <td colspan='2'>[payPrice]å /å ¬æ¤</td> <td>ç»ç®éé</td> <td colspan='2'>[settleWeight]å ¬æ¤</td> <td>ç»ç®éé¢</td> <td colspan='2'>[payMoney]å </td> </tr> <tr> <td>大åéé¢</td> <td colspan="7">[payMoneyName]</td> </tr> </table> <div class='div-tit'><span class='sp2 txt-left '>ç»ç®åï¼_______</span><span class='sp2 txt-left '>ä¿ç®¡åï¼_______</span><span class='sp2 txt-left '>å®¡æ ¸äººï¼_______</span><span class='sp2 txt-left '>æ¿è¿äººï¼_______</span></div> </body> </html>