소스 검색

代码优化

徐滕 1 개월 전
부모
커밋
109290120a

+ 29 - 0
src/main/java/com/jeeplus/modules/WorkKnowledgeBase/service/WorkKnowledgeBaseReadLikeService.java

@@ -13,6 +13,8 @@ import com.jeeplus.modules.WorkKnowledgeBase.entity.WorkKnowledgeBaseShareInfo;
 import com.jeeplus.modules.WorkKnowledgeBase.entity.WorkKnowledgeBaseUserExchangeFlag;
 import com.jeeplus.modules.WorkKnowledgeBase.entity.WorkKnowledgeBaseTreeInfo;
 import com.jeeplus.modules.WorkKnowledgeBase.entity.WorkKnowledgePointCategory;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.SystemService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -52,6 +54,9 @@ public class WorkKnowledgeBaseReadLikeService extends CrudService<WorkKnowledgeB
     @Autowired
     private WorkKnowledgeBaseTreeInfoDao treeInfoDao;
 
+    @Autowired
+    private SystemService systemService;
+
     /**
      * 记录阅读行为(首次阅读给创建人加分)
      * @param fileId 文件ID
@@ -97,6 +102,12 @@ public class WorkKnowledgeBaseReadLikeService extends CrudService<WorkKnowledgeB
             newRecord.setLastReadTime(now);
             newRecord.setReadCount(1);
             newRecord.preInsert();
+            // preInsert 后如果 createBy 为空(无登录用户 session),手动补上
+            if (newRecord.getCreateBy() == null) {
+                User user = systemService.getUser(userId);
+                newRecord.setCreateBy(user);
+                newRecord.setUpdateBy(user);
+            }
             readRecordDao.insert(newRecord);
 
             // 首次阅读:给创建人发放积分
@@ -150,6 +161,12 @@ public class WorkKnowledgeBaseReadLikeService extends CrudService<WorkKnowledgeB
             newRecord.setLikeTime(new Date());
             newRecord.setStatus(1);
             newRecord.preInsert();
+            // preInsert 后如果 createBy 为空(无登录用户 session),手动补上
+            if (newRecord.getCreateBy() == null) {
+                User user = systemService.getUser(userId);
+                newRecord.setCreateBy(user);
+                newRecord.setUpdateBy(user);
+            }
             likeRecordDao.insert(newRecord);
 
             // 首次点赞:给点赞人发放积分
@@ -382,6 +399,12 @@ public class WorkKnowledgeBaseReadLikeService extends CrudService<WorkKnowledgeB
         detail.setPoint(point);
         detail.setIsManualScore("0");
         detail.preInsert();
+        // preInsert 后如果 createBy 为空(无登录用户 session),手动补上
+        if (detail.getCreateBy() == null) {
+            User user = systemService.getUser(userId);
+            detail.setCreateBy(user);
+            detail.setUpdateBy(user);
+        }
         pointDetailDao.insert(detail);
 
         // 确保该用户的兑换标记记录存在(新用户首次获得积分时自动初始化)
@@ -402,6 +425,12 @@ public class WorkKnowledgeBaseReadLikeService extends CrudService<WorkKnowledgeB
                 flag.setIsFirstExchanged(0);
                 flag.setDelFlag("0");
                 flag.preInsert();
+                // preInsert 后如果 createBy 为空(无登录用户 session),手动补上
+                if (flag.getCreateBy() == null) {
+                    User user = systemService.getUser(userId);
+                    flag.setCreateBy(user);
+                    flag.setUpdateBy(user);
+                }
                 exchangeFlagDao.insert(flag);
             }
         } catch (Exception e) {

+ 2 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageAllService.java

@@ -1381,7 +1381,7 @@ public class RuralProjectMessageAllService extends CrudService<RuralProjectMessa
                 if("1".equals(info.getProjectType())){  //工程咨询
 
                     for (MainDictDetail infoDetail: projectSortList) {
-                        if(info.getAttachmentProjectSort().equals(infoDetail.getValue())){
+                        if(infoDetail.getValue().equals(info.getAttachmentProjectSort())){
                             info.setAttachmentProjectSort(infoDetail.getLabel());
                             break;
                         }
@@ -1390,7 +1390,7 @@ public class RuralProjectMessageAllService extends CrudService<RuralProjectMessa
                 }else if("2".equals(info.getProjectType())){    //造价审核
 
                     for (MainDictDetail infoDetail: projectSortCostList) {
-                        if(info.getAttachmentProjectSort().equals(infoDetail.getValue())){
+                        if(infoDetail.getValue().equals(info.getAttachmentProjectSort())){
                             info.setAttachmentProjectSort(infoDetail.getLabel());
                             break;
                         }

+ 3 - 3
src/main/java/com/jeeplus/modules/workinvoice/service/OMS/OMSDisposeService.java

@@ -100,7 +100,7 @@ public class OMSDisposeService {
                         return;
                     }
                 }else{
-                    handleInvoiceRetryAllFail("",workInvoiceId, "开票获取发票信息失败", informType); // 解析失败直接兜底
+                    handleInvoiceRetryAllFail("",workInvoiceId, "没有关联开票客户,无法开票", informType); // 解析失败直接兜底
                     return;
                 }
 
@@ -316,14 +316,14 @@ public class OMSDisposeService {
             // ======================== 所有码值规则 全部在这里【最终定稿】=========================
             if ("0000".equals(code)) {
                 // ✅ 0000 成功:解析数据+存入map+触发30秒后异步下载发票
-                jsonInvoicResult = OMSNationUtil.extractAccessTokenFromBase64(getKey, resultTokenInfo.getData().toString());
+                /*jsonInvoicResult = OMSNationUtil.extractAccessTokenFromBase64(getKey, resultTokenInfo.getData().toString());
                 map.put("订单接口返回值",jsonInvoicResult);
                 System.out.println("✅ 订单上传返回0000成功,触发发票下载接口");
                 if(StringUtils.isNotBlank(jsonInvoicResult)){
                     if(initiationType.equals("fastRed")){
                         workInvoiceId = jsonInvoicResult;
                     }
-                }
+                }*/
                 String finalWorkInvoiceId = workInvoiceId;
                 // 存入Redis,由InvoiceDownloadTask接管
                 saveInvoiceDownloadTaskToRedis(accessToken, finalWorkInvoiceId, informType);

+ 15 - 11
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementController.java

@@ -1186,11 +1186,12 @@ public class WorkReimbursementController extends BaseController {
             map.putAll(map3);
 
             //对处理后的数据根据发票号进行数据库查询,查看是否存在已报销的电子发票数据
-            if (StringUtils.isNotBlank(map.get("InvoiceNumber").toString())) {
-                ReimbursementVATTax invoiceNumber = workReimbursementService.getEffectiveDataByinvoiceNumber(map.get("InvoiceNumber").toString(), id);
-                if (null != invoiceNumber) {
+            String invoiceNumber = String.valueOf(map.get("InvoiceNumber"));
+            if (StringUtils.isNotBlank(invoiceNumber)) {
+                ReimbursementVATTax invoiceNumberResult = workReimbursementService.getEffectiveDataByinvoiceNumber(invoiceNumber, id);
+                if (null != invoiceNumberResult) {
                     map.put("flag", true);
-                    map.put("message", "发票号:" + map.get("InvoiceNumber").toString() + " 已发起或完成报销,请勿重复报销");
+                    map.put("message", "发票号:" + invoiceNumber + " 已发起或完成报销,请勿重复报销");
                     return map;
                 } else {
                     map.put("flag", false);
@@ -1199,19 +1200,22 @@ public class WorkReimbursementController extends BaseController {
                 map.put("flag", true);
                 map.put("message", "上传的数电发票格式错误,请确认后重新上传");
                 return map;
-
+            
             }
-
+            
             //对处理后的数据根据发票号进行数据库查询,查看是否存在已报销的电子发票数据
-            if ((StringUtils.isNotBlank(map.get("BuyerInformationBuyerName").toString()) && "江苏兴光项目管理有限公司".equals(map.get("BuyerInformationBuyerName").toString())) &&
-                    (StringUtils.isNotBlank(map.get("BuyerInformationBuyerIdNum").toString()) && "91320000746823994F".equals(map.get("BuyerInformationBuyerIdNum").toString()))) {
+            String buyerName = String.valueOf(map.get("BuyerInformationBuyerName"));
+            String buyerIdNum = String.valueOf(map.get("BuyerInformationBuyerIdNum"));
+            if ((StringUtils.isNotBlank(buyerName)
+                    && "江苏兴光项目管理有限公司".equals(buyerName))
+                    && (StringUtils.isNotBlank(buyerIdNum) && "91320000746823994F".equals(buyerIdNum))) {
                 map.put("flag", false);
             } else {
                 map.put("flag", true);
-                if(StringUtils.isNotBlank(map.get("BuyerInformationBuyerIdNum").toString()) && !"91320000746823994F".equals(map.get("BuyerInformationBuyerIdNum").toString())){
-                    map.put("message", "上传的数电发票购买方不是“江苏兴光项目管理有限公司”的统一社会信用代码,无法进行报销");
+                if(StringUtils.isNotBlank(buyerIdNum) && !"91320000746823994F".equals(buyerIdNum)){
+                    map.put("message", "上传的数电发票购买方不是" + "江苏兴光项目管理有限公司" + "的统一社会信用代码,无法进行报销");
                 }else {
-                    map.put("message", "上传的数电发票购买方不是“江苏兴光项目管理有限公司”,无法进行报销");
+                    map.put("message", "上传的数电发票购买方不是" + "江苏兴光项目管理有限公司" + ",无法进行报销");
                 }
                 return map;
             }

+ 2 - 0
src/main/java/com/jeeplus/modules/workstaff/web/WorkStaffBasicInfoController.java

@@ -123,6 +123,8 @@ public class WorkStaffBasicInfoController extends BaseController {
 				model.addAttribute("workStaffBasicInfo", workStaffBasicInfo);
 			}
 		}
+		//未选择(含首次进入、点击重置)时回填默认过滤条件;
+		//若用户显式选择“全部”(哨兵值,非空),则保留该值,SQL 层会跳过过滤以查询全部。
 		if(StringUtils.isBlank(workStaffBasicInfo.getStatus())){
 			workStaffBasicInfo.setStatus("正式");
 		}

+ 16 - 16
src/main/resources/jeeplus.properties

@@ -414,23 +414,23 @@ publicPassword: Xg@sys9hB2!xWm
 szPublicPassword: Xg@sys9hB2!xWm
 
 
-#OMS\u5F00\u7968\u76F8\u5173\u53C2\u6570
-omsAppId: hyc1
-omsAppKey: hyc1
-#\u7EC4\u7EC7\u7F16\u7801
-omsDeptCode: 500102204228315131
-#\u9500\u552E\u65B9\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7
-omsSellerTaxno: 500102204228315131
-#\u9500\u552E\u65B9\u540D\u79F0
-omsSellerName: \u6C5F\u82CF\u5174\u5149\u9879\u76EE\u7BA1\u7406\u6709\u9650\u516C\u53F8
-#\u9500\u552E\u65B9\u94F6\u884C\u540D\u79F0
-omsBankName: \u4E2D\u4FE1\u94F6\u884C\u5357\u4EAC\u9F99\u6C5F\u652F\u884C
-#\u9500\u552E\u65B9\u94F6\u884C\u8D26\u53F7
+#OMS??????
+omsAppId: JSXGXM
+omsAppKey: JSXGXM
+#????
+omsDeptCode: JSXG01
+#?????????
+omsSellerTaxno: 91320000746823994F
+#?????
+omsSellerName: ????????????
+#???????
+omsBankName: ??????????
+#???????
 omsBankAccount: 7329010182600006811
-#\u8BBF\u95EE\u63A5\u53E3\u5730\u5740\u524D\u7F00
-omsUrl: https://oms-sandbox.einvoice.js.cn:7079
-#omsUrl: https://www.oms.ejinshui-cloud.com:8899
-#\u7528\u4E8E\u5224\u5B9A\u662F\u5426\u5F00\u542Foms\u5F00\u7968\u6D41\u7A0B\u4E8B\u4EF6
+#????????
+#omsUrl: https://oms-sandbox.einvoice.js.cn:7079
+omsUrl: https://www.oms.ejinshui-cloud.com:8899
+#????????oms??????
 omsEnabled: false
 
 oidc.enabled=false

+ 2 - 2
src/main/resources/mappings/modules/workstaff/WorkStaffBasicInfoDao.xml

@@ -208,7 +208,7 @@
 			<if test="office != null and office.id =='' and office.name != null and office.name != ''">
 				AND o.name like concat("%",#{office.name},"%")
 			</if>
-			<if test="userLoginFlag != null and userLoginFlag != ''">
+			<if test="userLoginFlag != null and userLoginFlag != '' and userLoginFlag != '全部'">
 				AND suc.login_flag = #{userLoginFlag}
 			</if>
 			<if test="notOfficeParentIdList!=null and notOfficeParentIdList.size!=0">
@@ -241,7 +241,7 @@
 			<if test="jobGrade != null and jobGrade.id !=null and jobGrade.id != ''">
 				AND a.job_grade = #{jobGrade.id}
 			</if>
-			<if test="status != null and status != ''">
+			<if test="status != null and status != '' and status != '全部'">
 				AND a.status = #{status}
 			</if>
 			<if test="beginEntryDate != null">

+ 17 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAuditEnd.jsp

@@ -239,6 +239,23 @@
 				}
 			}
 
+			// 开票类型为“个人开票”(newDrawer=2)时,“是否手动开票”强制默认为“是”,避免个人票走接口开票出现问题
+			var newDrawerVal = '${workInvoice.newDrawer}';
+			if(newDrawerVal === "2"){
+				// 1. 获取所有isOmsBilling单选框
+				var personalRadioList = document.getElementsByName("isOmsBilling");
+
+				// 2. 强制选中“是”(下标0),取消“否”(下标1)
+				personalRadioList[0].checked = true;
+				personalRadioList[1].checked = false;
+
+				// 3. 禁用整个单选框组,防止用户误改
+				for (var k = 0; k < personalRadioList.length; k++) {
+					personalRadioList[k].disabled = true;
+					personalRadioList[k].parentNode.classList.add("layui-disabled");
+				}
+			}
+
 
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){

+ 1 - 1
src/main/webapp/webpage/modules/workstaff/cerification/workStaffBasicCertificationForm.jsp

@@ -555,7 +555,7 @@
                     </div>
 
                     <span style="color:#ff5722;font-size:12px;">
-                            若为:一级造价师、一级建造师、一级监理师请。上传证书网站上下载的pdf原文件
+                            若为:一级造价师、一级建造师、一级监理师。请上传证书网站上下载的pdf原文件
                         </span>
                 </div>
             </div>

+ 2 - 0
src/main/webapp/webpage/modules/workstaff/workStaffBasicInfoList.jsp

@@ -235,6 +235,7 @@
                         <div class="layui-input-block">
                             <form:select path="status" class="form-control simple-select required">
                                 <form:option value="" label=""/>
+                                <form:option value="全部" label="全部"/>
                                 <form:options items="${fns:getDictList('staff_status')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
                             </form:select>
                         </div>
@@ -272,6 +273,7 @@
                         <div class="layui-input-block">
                             <form:select path="userLoginFlag" class="form-control simple-select">
                                 <form:option value="" label=""/>
+                                <form:option value="全部" label="全部"/>
                                 <form:options items="${fns:getDictList('disabled_user_login')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
                             </form:select>
                         </div>