fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Bank.java
@@ -17,6 +17,7 @@ @Data @Entity @Table(name = "t_bank") @TableName("t_bank") @EqualsAndHashCode(callSuper=false) public class Bank extends BizBaseEntity implements Serializable { fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/BankMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package com.fzzy.igds.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.fzzy.igds.domain.Bank; import org.apache.ibatis.annotations.Mapper; @Mapper public interface BankMapper extends BaseMapper<Bank> { } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/BankService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,58 @@ package com.fzzy.igds.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.fzzy.igds.data.BaseResp; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.domain.Bank; import com.fzzy.igds.mapper.BankMapper; import com.fzzy.igds.utils.ContextUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * * é¶è¡ä¿¡æ¯ç®¡ç */ @Service public class BankService { @Resource private BankMapper bankMapper; public List<Bank> listAll(IgdsBaseParam param) { if(null == param) return bankMapper.selectList(null); QueryWrapper<Bank> queryWrapper = new QueryWrapper<>(); if(StringUtils.isNotEmpty(param.getName())){ queryWrapper.like("name", param.getName()); } return bankMapper.selectList(queryWrapper); } public BaseResp addData(Bank bank) { bank.setId(ContextUtil.generateId()); bank.setCompanyId(ContextUtil.getCompanyId()); bank.setUpdateBy(ContextUtil.getLoginUserName()); bank.setUpdateTime(new Date()); bank.setCreateBy(ContextUtil.getLoginUserName()); bank.setCreateTime(new Date()); return bankMapper.insert(bank) > 0 ? BaseResp.success() : BaseResp.error("æ·»å 失败"); } public BaseResp updateData(Bank bank) { bank.setUpdateBy(ContextUtil.getLoginUserName()); bank.setUpdateTime(new Date()); return bankMapper.updateById(bank) > 0 ? BaseResp.success() : BaseResp.error("æ´æ°å¤±è´¥"); } public BaseResp deleteData(Bank bank) { return bankMapper.deleteById(bank) > 0 ? BaseResp.success() : BaseResp.error("å é¤å¤±è´¥"); } } fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
@@ -7,7 +7,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.atomic.AtomicLong; /** * ç³»ç»å ¬ç¨æ¹æ³ @@ -16,202 +19,47 @@ */ public class ContextUtil { public static Map<String, Boolean> l = new HashMap<>(); //å ¨å±ç¨æ·å®æ¶åå¨é¨é¨ public static Map<String, String> contextUserDept = new HashMap<>(); /** * å ¨å±å½ä»¤ID */ public static Map<String, Integer> contextOrderId = new HashMap<>(); private static final AtomicLong sequence = new AtomicLong(0); private static String lastTimestamp = ""; /** * UUIDçæè§å * çæé¡ºåºIDï¼å¹´ææ¥æ¶åç§æ¯«ç§(17ä½) + åºåå·(4ä½) = 21ä½ * * @return */ public static String getUUID() { return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase(); } public static String generateId() { String currentTimestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); long seq; synchronized (ContextUtil.class) { if (currentTimestamp.equals(lastTimestamp)) { seq = sequence.incrementAndGet(); } else { sequence.set(0); seq = 0; public static String getBusinessID() { return DateFormatUtils.format(new Date(), "yyyyMMdd") + String.format("%04d", RandomUtils.nextInt(0, 10000)); } public static String getCurTimeMillis() { return System.currentTimeMillis() + ""; } public static String getTimeId() { return DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"); } public static String getTimeId(int start, int end) { return DateFormatUtils.format(new Date(), "yyyyMMddHHmmss") + RandomUtils.nextInt(start, end); } /** * è·åå½å年份 * * @return */ public static String getYear() { return DateFormatUtils.format(new Date(), "yyyyMM"); } /** * çæèµäº§ç¼ç ID * @return */ public static String createAssetId() { return "NO" + randomChar(4) + getYear() + randomNum(6); } /** * çæä¸å¡ID * @param prefix * @return */ public static String getBizId(String prefix) { if (prefix == null) prefix = "ID"; return prefix + getTimeId() + randomNum(4); } /** * éæºçæå¤§å忝 * * @param length é¿åº¦ * @return */ public static String randomChar(int length) { Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { char randomLetter = (char) (random.nextInt(26) + 'A'); // 65-90 sb.append(randomLetter); lastTimestamp = currentTimestamp; } } return sb.toString(); return String.format("%s%04d", currentTimestamp, seq); } public static String UUID() { return UUID.randomUUID().toString().replaceAll("-", ""); } /** * éæºçææ°å * @param length * @return */ public static String randomNum(int length) { Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int digit = random.nextInt(10); // çæ0-9çéæºæ° sb.append(digit); } return sb.toString(); } public static String getDefaultBatchId() { return DateFormatUtils.format(new Date(), "yyyyMMddHHmm"); } /** * æ ¹æ®å½åç»é人è·åç»ç»ç¼å·ï¼å¦ææ²¡æç»é人è·åç³»ç»é»è®¤çç»ç»ç¼å· * * @return * é»è®¤è·åç»å½äººæå¨ç»ç»ï¼å¦ææªç»å½åè·åç³»ç»é»è®¤ç»ç» * @return ç»ç»ID */ public static String getCompanyId() { return ShiroUtils.getLoginUserCompanyId(); } /** * è·åç³»ç»é»è®¤ç=companyId * * @return */ public static String getDefaultCompanyId() { SysUser user = ShiroUtils.getSysUser(); if (null != user) { return user.getCompanyId(); } else { return FrameworkConfig.getCompanyId(); } if(null != user) return user.getCompanyId(); return FrameworkConfig.getCompanyId(); } /** * æé«çç¼ç 为ï¼ç»ç»ç¼ç ï¼ç¶åé级å¾ä¸ï¼å¦ï¼5013,5013_001,5013_002,5013_001_001 * * @param companyId å¿ é¡» * @param parentId å¯ç©º * @param endId å¯ç©º * @param format å¿ é¡» ä¸ä½ä¼ 1000ï¼åä½ä¼ 10000 * @return */ public static String getNextId(String companyId, String parentId, String endId, int format) { if (parentId == null) { return companyId; } try { int endNum = 0; if (StringUtils.isNotEmpty(endId)) { endNum = Integer.valueOf(endId.substring(endId.length() - 3)); } String endStr = ("" + (endNum + format + 1)).substring(1); if (parentId.equals(companyId)) { return companyId + "_" + endStr; } parentId = parentId.substring(parentId.lastIndexOf("_") + 1); return companyId + "_" + parentId + "_" + endStr; } catch (Exception e) { e.printStackTrace(); return null; } public static String getLoginUserName() { return ShiroUtils.getUserName() ; } /** * è·åä»åºç¼ç æ ¼å¼ï¼ * * @param deptId 5102_001_001 5102_001_002 * å¿ é¡» ååºç¼ç * @param endId å¿ é¡» æåçä»åºç¼ç * @param format å¿ é¡» ä¸ä½ä¼ 1000ï¼åä½ä¼ 10000ï¼é»è®¤é½ä¼ 1000 * @return */ public static String getNextDepotId(String deptId, String endId, int format) { try { int endNum = 0; if (StringUtils.isNotEmpty(endId)) { endNum = Integer.valueOf(endId.substring(endId.length() - 3)); } String endStr = ("" + (endNum + format + 1)).substring(1); endStr = deptId.substring(deptId.indexOf("_") + 1) + "_" + endStr; return endStr.replaceAll("_", ""); } catch (Exception e) { e.printStackTrace(); return null; } } /** * è·åå 餿³¨é * * @author sgj * @date 2025/08/05 * @param desc å é¤ææ¡æè¿° */ public static String getDeleteDesc(String desc) { if (StringUtils.isEmpty(desc)) { desc = "å 餿°æ®"; } return desc + "_" + ShiroUtils.getLoginName() + "_" + new Date(); } } fzzy-igdss-view/pom.xml
@@ -107,6 +107,12 @@ <artifactId>commons-jexl</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>com.thoughtworks.paranamer</groupId> <artifactId>paranamer</artifactId> <version>2.3</version> </dependency> </dependencies> fzzy-igdss-view/src/main/java/com/fzzy/igds/Bank.view.xml
@@ -4,17 +4,10 @@ <Context/> <Model/> <View layout="padding:10"> <ClientEvent name="onReady">
 flushData = function(){
 var dataTree = view.get("#dataTree1");
 var current = dataTree.get("currentEntity");
 view.get("#dsMain").set("parameter",current.get("id")).flushAsync();
 }
 </ClientEvent> <Property name="packages">font-awesome,css-common</Property> <DataSet id="dsMain"> <Property name="dataType">[dtBank]</Property> <Property name="pageSize">20</Property> <Property name="dataProvider">bankPR#listAll</Property> </DataSet> <DataSet id="dsParam"> <ClientEvent name="onReady">self.insert();</ClientEvent> @@ -34,10 +27,18 @@ <Editor/> </AutoFormElement> <Button> <ClientEvent name="onClick">var param = view.get("#dsParam.data");
 view.get("#dsMian").set("parameter",param).flushAsync();
 </ClientEvent> <Property name="caption">æç´¢</Property> <Property name="iconClass">fa fa-search</Property> <Property name="exClassName">btn-q1</Property> </Button> <Button> <ClientEvent name="onClick">view.get("#dsParam").set("data",{});</ClientEvent> <Property name="caption">éç½®</Property> <Property name="exClassName">btn-q2</Property> <Property name="iconClass">fa fa-refresh</Property> </Button> </AutoForm> </Container> @@ -45,34 +46,16 @@ <Property name="className">c-data</Property> <ToolBar> <ToolBarButton> <ClientEvent name="onClick">flushData();</ClientEvent> <Property name="caption">å·æ°</Property> <Property name="exClassName">btn4</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-refresh</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick">var dataTree = view.get("#dataTree1");
 var current = dataTree.get("currentEntity");
 
 var newData = {warehouseId:current.get("id")};
 view.get("#dsMain").insert(newData);
 
 view.get("#dialogMain").show();
 </ClientEvent> <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-circle</Property> <Property name="iconClass">fa fa-plus</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick"> const data = view.get("#dgMain").get("selection"); if (!data) { $alert("è¯·éæ©æ°æ®"); return; } view.get("#dialogUpdate").show(); <ClientEvent name="onClick">var data = view.get("#dgMain").get("selection"); view.get("#dialogMain").show(); </ClientEvent> <Property name="id">btnUpdate</Property> <Property name="caption">ä¿®æ¹</Property> @@ -81,39 +64,23 @@ <Property name="iconClass">fa fa-pencil-square-o</Property> </ToolBarButton> <ToolBarButton> <ClientEvent name="onClick"> let data = view.get("#dgMain").get("selection") if(!data){ $alert("è¯·éæ©æ°æ®") }else{ view.get("#ajaxDelData").set("parameter", data).execute(function(result){ data.remove() }) } </ClientEvent> <ClientEvent name="onClick">var data = view.get("#dgMain").get("selection") if(!data){ $alert("è¯·éæ©æ°æ®"); }else{ view.get("#ajaxDelData").set("parameter", data).execute(function(result){ if("200"!=result.code){ $alert("å¼å¸¸ä¿¡æ¯ï¼"+result.message); }else{ $notify("æ§è¡æå"); data.remove() } }) }</ClientEvent> <Property name="caption">å é¤</Property> <Property name="exClassName">btn3</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-times-circle</Property> </ToolBarButton> <Separator/> <ToolBarButton> <Property name="caption">导åº</Property> <Property name="exClassName">btn4</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-file-excel-o</Property> </ToolBarButton> <ToolBarButton> <Property name="caption">æå°</Property> <Property name="exClassName">btn4</Property> <Property name="iconClass">fa fa-print</Property> <Property name="width">100</Property> </ToolBarButton> <ToolBarButton> <Property name="caption">帮å©</Property> <Property name="exClassName">btn4</Property> <Property name="iconClass">fa fa-question-circle</Property> <Property name="width">100</Property> <Property name="iconClass">fa fa-times</Property> </ToolBarButton> </ToolBar> <DataGrid id="dgMain" layoutConstraint="padding:8" selectionMode="singleRow"> @@ -138,18 +105,10 @@ <Property name="property">updateTime</Property> </DataColumn> </DataGrid> <ToolBar layoutConstraint="bottom"> <Fill/> <DataPilot> <Property name="itemCodes">pageSize,pages</Property> <Property name="dataSet">dsMain</Property> </DataPilot> </ToolBar> </Container> <Dialog id="dialogMain"> <Property name="width">90%</Property> <Property name="height">90%</Property> <Property name="caption">产åä¿¡æ¯</Property> <Property name="width">550</Property> <Property name="caption">é¶è¡ä¿¡æ¯</Property> <Property name="closeable">false</Property> <Property name="iconClass">fa fa-tasks</Property> <Buttons> @@ -173,57 +132,37 @@ </Buttons> <Children> <AutoForm layoutConstraint="padding:10"> <Property name="cols">*,*,*</Property> <Property name="cols">*</Property> <Property name="dataSet">dsMain</Property> <Property name="labelSeparator">ï¼</Property> <Property name="labelAlign">right</Property> <Property name="labelWidth">100</Property> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <Property name="name">name</Property> <Property name="property">name</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">model</Property> <Property name="property">model</Property> <Property name="name">status</Property> <Property name="property">status</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">unit</Property> <Property name="property">unit</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">warehouseId</Property> <Property name="property">warehouseId</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">disabled</Property> <Property name="property">disabled</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:3"> <Property name="name">spec</Property> <Property name="property">spec</Property> <Property name="editorType">TextArea</Property> <Property name="height">150</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:3"> <Property name="name">remark</Property> <Property name="property">remark</Property> <Property name="editorType">TextArea</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">updateTime</Property> <Property name="property">updateTime</Property> <Property name="name">updateBy</Property> <Property name="property">updateBy</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">updateUser</Property> <Property name="property">updateUser</Property> <Property name="name">updateTime</Property> <Property name="property">updateTime</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> </AutoForm> @@ -231,6 +170,7 @@ <Tools/> </Dialog> <UpdateAction id="saveAction"> <Property name="dataResolver">bankPR#saveUpdate</Property> <UpdateItem> <Property name="dataSet">dsMain</Property> <Property name="dataPath">[#current]</Property> @@ -238,7 +178,7 @@ </UpdateAction> <AjaxAction id="ajaxDelData"> <Property name="confirmMessage">ç¡®å®è¦å 餿°æ®ä¹ï¼</Property> <Property name="service">imsProductPR#delete</Property> <Property name="service">bankPR#delete</Property> </AjaxAction> </View> </ViewConfig> fzzy-igdss-view/src/main/java/com/fzzy/igds/BankPR.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,62 @@ package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.fzzy.igds.data.BaseResp; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.domain.Bank; import com.fzzy.igds.service.BankService; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; /** * é¶è¡ç®¡ç * Created by fzzy on 2017/5/23. */ @Component public class BankPR { @Resource private BankService bankService; /** * bankPR#listAll * é¶è¡å表 */ @DataProvider public List<Bank> listAll(IgdsBaseParam param) { return bankService.listAll(param); } /** * ä¿å/æ´æ° * @param bank * @return */ @Transactional @DataResolver public BaseResp saveUpdate(Bank bank){ if(StringUtils.isEmpty(bank.getId())){ return bankService.addData(bank); }else { return bankService.updateData(bank); } } /** * å é¤ * @param bank * @return */ @Expose public BaseResp delete(Bank bank){ if(StringUtils.isNotEmpty(bank.getId())) return bankService.deleteData(bank); return BaseResp.success(); } } fzzy-igdss-web/pom.xml
@@ -50,7 +50,7 @@ <version>${fzzy.igdss.version}</version> </dependency> <!-- d7ç®è¤å --> <!-- d7ç®è¤å --> <dependency> <groupId>dorado.skins</groupId> <artifactId>ruoyi</artifactId> @@ -60,6 +60,7 @@ </dependency> </dependencies> <build> fzzy-igdss-web/src/main/java/com/bstek/dorado/web/loader/DoradoLoader.java
@@ -26,6 +26,7 @@ import javax.servlet.ServletContext; import com.ruoyi.common.config.FrameworkConfig; import org.apache.commons.jexl2.JexlContext; import org.apache.commons.jexl2.MapContext; import org.apache.commons.lang3.ArrayUtils; fzzy-igdss-web/src/main/resources/application-dev.yml
@@ -75,3 +75,8 @@ jdbc: batch_size: 500 batch_versioned_data: true #ç³»ç»æ¶æé ç½® framework: companyId: "1000" doradoMode: debug fzzy-igdss-web/src/main/resources/application.yml
@@ -98,6 +98,7 @@ phone: 400-627-1116 website: http://www.fzzygf.com address: éå·å¸é«æ°åºé¿æ¤¿è·¯11å·æ²³åçå½å®¶å¤§å¦ç§æååµå1å·æ¥¼ doradoMode: # æ¥å¿é ç½® fzzy-igdss-web/src/main/resources/d7/common.css
@@ -161,8 +161,8 @@ border-radius: 50px; color: #fff !important; padding: 0 15px; background-color: #037d41 !important; border-color: #037d41; background-color: #1c84c6 !important; border-color: #1c84c6; white-space: nowrap; cursor: pointer; }