Compare commits

...

2 Commits

Author SHA1 Message Date
Ji Liu c3f1d39a7a Merge branch 'master' of http://git.unissense.tech/mula/unis_sip 2025-04-23 16:32:41 +08:00
Ji Liu 2269d59d4b 修改了合同页面 2025-04-23 16:29:15 +08:00
16 changed files with 140 additions and 83 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -16,7 +16,7 @@ public class RuoYiApplication
{ {
// System.setProperty("spring.devtools.restart.enabled", "false"); // System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(RuoYiApplication.class, args); SpringApplication.run(RuoYiApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + System.out.println("(♥◠‿◠)ノ゙ Application Start Completely ლ(´ڡ`ლ)゙ \n" +
" .-------. ____ __ \n" + " .-------. ____ __ \n" +
" | _ _ \\ \\ \\ / / \n" + " | _ _ \\ \\ \\ / / \n" +
" | ( ' ) | \\ _. / ' \n" + " | ( ' ) | \\ _. / ' \n" +

Binary file not shown.

View File

@ -6,7 +6,7 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://121.199.168.157:3306/unis_pms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://121.199.168.157:3306/unis_pms?useUnicode=true&rewriteBatchedStatements=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: unis@db password: unis@db
# 从库数据源 # 从库数据源

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@ -3,8 +3,8 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<title>登录若依系统</title> <title>登录应用管理系统</title>
<meta name="description" content="若依后台管理框架"> <meta name="description" content="紫光汇智应用管理系统">
<link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/> <link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
<link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/> <link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
<link href="../static/css/style.min.css" th:href="@{/css/style.min.css}" rel="stylesheet"/> <link href="../static/css/style.min.css" th:href="@{/css/style.min.css}" rel="stylesheet"/>
@ -26,10 +26,10 @@
<div class="col-sm-7"> <div class="col-sm-7">
<div class="signin-info"> <div class="signin-info">
<div class="logopanel m-b"> <div class="logopanel m-b">
<h1><img alt="[ 若依 ]" src="../static/ruoyi.png" th:src="@{/ruoyi.png}"></h1> <h1><img alt="[ 紫光汇智 ]" src="../static/ruoyi.png" th:src="@{/ruoyi.png}"></h1>
</div> </div>
<div class="m-b"></div> <div class="m-b"></div>
<h4>欢迎使用 <strong>若依 后台管理系统</strong></h4> <h4>欢迎使用 <strong>紫光汇智 应用管理系统</strong></h4>
<ul class="m-b"> <ul class="m-b">
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> SpringBoot</li> <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> SpringBoot</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Mybatis</li> <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Mybatis</li>

View File

@ -0,0 +1,82 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<title>登录若依系统</title>
<meta name="description" content="若依后台管理框架">
<link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
<link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
<link href="../static/css/style.min.css" th:href="@{/css/style.min.css}" rel="stylesheet"/>
<link href="../static/css/login.min.css" th:href="@{/css/login.min.css}" rel="stylesheet"/>
<link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=4.8.0}" rel="stylesheet"/>
<!-- 360浏览器急速模式 -->
<meta name="renderer" content="webkit">
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="shortcut icon" href="../static/favicon.ico" th:href="@{favicon.ico}"/>
<style type="text/css">label.error { position:inherit; }</style>
<script>
if(window.top!==window.self){alert('未登录或登录超时。请重新登录');window.top.location=window.location};
</script>
</head>
<body class="signin">
<div class="signinpanel">
<div class="row">
<div class="col-sm-7">
<div class="signin-info">
<div class="logopanel m-b">
<h1><img alt="[ 若依 ]" src="../static/ruoyi.png" th:src="@{/ruoyi.png}"></h1>
</div>
<div class="m-b"></div>
<h4>欢迎使用 <strong>若依 后台管理系统</strong></h4>
<ul class="m-b">
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> SpringBoot</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Mybatis</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Shiro</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Thymeleaf</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Bootstrap</li>
</ul>
<strong th:if="${isAllowRegister}">还没有账号? <a th:href="@{/register}">立即注册&raquo;</a></strong>
</div>
</div>
<div class="col-sm-5">
<form id="signupForm" autocomplete="off">
<h4 class="no-margins">登录:</h4>
<p class="m-t-md">你若不离不弃,我必生死相依</p>
<input type="text" name="username" class="form-control uname" placeholder="用户名" value="admin" />
<input type="password" name="password" class="form-control pword" placeholder="密码" value="admin@123" />
<div class="row m-t" th:if="${captchaEnabled==true}">
<div class="col-xs-6">
<input type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" />
</div>
<div class="col-xs-6">
<a href="javascript:void(0);" title="点击更换验证码">
<img th:src="@{/captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>
</a>
</div>
</div>
<div class="checkbox-custom" th:if="${isRemembered}" th:classappend="${captchaEnabled==false} ? 'm-t'">
<input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住我</label>
</div>
<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍候...">登录</button>
</form>
</div>
</div>
<div class="signup-footer">
<div class="pull-left">
Copyright © 2018-2025 ruoyi.vip All Rights Reserved. <br>
</div>
</div>
</div>
<script th:inline="javascript"> var ctx = [[@{/}]]; var captchaType = [[${captchaType}]]; var captchaEnabled = [[${captchaEnabled}]];</script>
<!--[if lte IE 8]><script>window.location.href=ctx+'html/ie.html';</script><![endif]-->
<!-- 全局js -->
<script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
<script src="../static/ajax/libs/validate/jquery.validate.min.js" th:src="@{/ajax/libs/validate/jquery.validate.min.js}"></script>
<script src="../static/ajax/libs/layer/layer.min.js" th:src="@{/ajax/libs/layer/layer.min.js}"></script>
<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=4.8.0}"></script>
<script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
</body>
</html>

View File

@ -128,12 +128,8 @@
</div> </div>
<h4 class="form-header h4">合同清单列表</h4> <h4 class="form-header h4">合同清单列表</h4>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12 select-table table-striped">
<button type="button" class="btn btn-white btn-sm" onclick="addRow()"><i class="fa fa-plus"> 增加</i></button> <table id="bootstrap-table"></table>
<button type="button" class="btn btn-white btn-sm" onclick="sub.delRow()"><i class="fa fa-minus"> 删除</i></button>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div> </div>
</div> </div>
</form> </form>
@ -203,15 +199,17 @@
showColumns: false, showColumns: false,
sidePagination: "client", sidePagination: "client",
columns: [{ columns: [{
checkbox: true checkbox: false
}, },
{ {
field: 'index', field: 'index',
align: 'center', align: 'center',
title: "序号", title: "序号",
formatter: function (value, row, index) { formatter: function (value, row, index) {
var columnIndex = $.common.sprintf("<input type='hidden' name='index' value='%s'>", $.table.serialNumber(index)); // var columnIndex = $.common.sprintf("<input type='hidden' name='index' value='%s'>", $.table.serialNumber(index));
return columnIndex + $.table.serialNumber(index); //var html = $.common.sprintf("<input class='form-control' type='text' name='orderListList[%s].id' value='%s'>", index, value);
var html = $.common.sprintf("<input type='hidden' name='orderListList[%s].id' value='%s'>", index, value);
return html+$.table.serialNumber(index);
} }
}, },
{ {
@ -219,7 +217,16 @@
align: 'center', align: 'center',
title: 'BOM编码', title: 'BOM编码',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var html = $.common.sprintf("<input class='form-control' type='text' name='orderListList[%s].productCode' value='%s'>", index, value); var html = $.common.sprintf("<p class='form-control-static'>%s</p>", value);
return html;
}
},
{
field: 'productName',
align: 'center',
title: '产品名称',
formatter: function(value, row, index) {
var html = $.common.sprintf("<p class='form-control-static'>%s</p>", value);
return html; return html;
} }
}, },
@ -234,16 +241,6 @@
} }
}, },
{
field: 'price',
align: 'center',
title: '单价',
formatter: function(value, row, index) {
var html = $.common.sprintf("<input class='form-control' type='text' name='orderListList[%s].price' value='%s'>", index, value);
return html;
}
},
{ {
field: 'amount', field: 'amount',
align: 'center', align: 'center',
@ -262,35 +259,10 @@
var html = $.common.sprintf("<input class='form-control' type='text' name='orderListList[%s].remark' value='%s'>", index, value); var html = $.common.sprintf("<input class='form-control' type='text' name='orderListList[%s].remark' value='%s'>", index, value);
return html; return html;
} }
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var value = $.common.isNotEmpty(row.index) ? row.index : $.table.serialNumber(index);
return '<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="sub.delRowByIndex(\'' + value + '\')"><i class="fa fa-remove"></i>删除</a>';
}
}] }]
}; };
$.table.init(options); $.table.init(options);
}); });
function addRow() {
var count = $("#" + table.options.id).bootstrapTable('getData').length;
var row = {
index: $.table.serialNumber(count),
productId: "",
quantity: "",
price: "",
amount: "",
remark: "",
createdAt: "",
updatedAt: "",
deletedAt: "",
}
sub.addRow(row);
}
</script> </script>
</body> </body>
</html> </html>

View File

@ -26,9 +26,12 @@ public class OrderList extends BaseEntity
private Long orderId; private Long orderId;
/** 产品编码,关联产品编码表 */ /** 产品编码,关联产品编码表 */
@Excel(name = "产品编码,关联产品编码表") @Excel(name = "BOM编码")
private String productCode; private String productCode;
@Excel(name = "产品名称")
private String productName;
/** 数量 */ /** 数量 */
@Excel(name = "数量") @Excel(name = "数量")
private Long quantity; private Long quantity;
@ -42,7 +45,6 @@ public class OrderList extends BaseEntity
private BigDecimal amount; private BigDecimal amount;
private String operateFlag;
/** 创建时间 */ /** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
@ -85,6 +87,10 @@ public class OrderList extends BaseEntity
{ {
return productCode; return productCode;
} }
public String getProductName()
{
return productName;
}
public void setQuantity(Long quantity) public void setQuantity(Long quantity)
{ {
this.quantity = quantity; this.quantity = quantity;
@ -140,13 +146,6 @@ public class OrderList extends BaseEntity
return deletedAt; return deletedAt;
} }
public String getOperateFlag() {
return operateFlag;
}
public void setOperateFlag(String operateFlag) {
this.operateFlag = operateFlag;
}
@Override @Override
public String toString() { public String toString() {
@ -154,6 +153,7 @@ public class OrderList extends BaseEntity
.append("id", getId()) .append("id", getId())
.append("orderId", getOrderId()) .append("orderId", getOrderId())
.append("productCode", getProductCode()) .append("productCode", getProductCode())
.append("productName", getProductName())
.append("quantity", getQuantity()) .append("quantity", getQuantity())
.append("price", getPrice()) .append("price", getPrice())
.append("amount", getAmount()) .append("amount", getAmount())

View File

@ -99,8 +99,12 @@ public class OrderInfoServiceImpl implements IOrderInfoService
// //
// orderInfoMapper.logicRemoveListById(deleteList); // orderInfoMapper.logicRemoveListById(deleteList);
// } // }
orderInfoMapper.deleteOrderListByOrderId(orderInfo.getId()); // orderInfoMapper.deleteOrderListByOrderId(orderInfo.getId());
insertOrderList(orderInfo); // insertOrderList(orderInfo);
List<OrderList> orderListList = orderInfo.getOrderListList();
if (orderListList!=null && !orderListList.isEmpty()){
orderInfoMapper.updateListBatch(orderListList);
}
return orderInfoMapper.updateOrderInfo(orderInfo); return orderInfoMapper.updateOrderInfo(orderInfo);
} }

View File

@ -94,7 +94,7 @@
t1.status, t1.status,
t1.remark, t1.remark,
t1.created_at, t1.created_at,
t1. updated_at, t1.updated_at,
t1.deleted_at, t1.deleted_at,
t2.dept_name as order_dept_name, t2.dept_name as order_dept_name,
t3.dept_name as partner_dept_name t3.dept_name as partner_dept_name
@ -105,19 +105,21 @@
</select> </select>
<select id="selectOrderListList" resultMap="OrderListResult"> <select id="selectOrderListList" resultMap="OrderListResult">
select id, select t1.id,
order_id, t1.order_id,
product_code, t1.product_code,
quantity, t2.product_name,
price, t1.quantity,
amount, t1.price,
remark, t1.amount,
created_at, t1.remark,
updated_at, t1.created_at,
deleted_at t1.updated_at,
from order_list t1.deleted_at
where order_id = #{order_id} from order_list t1
and status=0 left join product_info t2 on t1.product_code=t2.product_code
where t1.order_id = #{order_id}
and t1.status=0
</select> </select>
<select id="listOrderListByDeliveryId" resultMap="OrderListResult"> <select id="listOrderListByDeliveryId" resultMap="OrderListResult">
select id, select id,
@ -219,12 +221,9 @@
<foreach item="item" index="index" collection="list" separator=";"> <foreach item="item" index="index" collection="list" separator=";">
update order_list update order_list
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="productCode != null">product_code = #{productCode},</if> <if test="item.quantity != null ">quantity = #{item.quantity},</if>
<if test="quantity != null ">quantity = #{quantity},</if> <if test="item.amount != null">amount = #{item.amount},</if>
<if test="price != null">price = #{price},</if> <if test="item.remark != null and item.remark!=''">remark = #{item.remark},</if>
<if test="amount != null">amount = #{amount},</if>
<if test="remark != null and remark!=''">remark = #{remark},</if>
updated_at = NOW(), updated_at = NOW(),
</trim> </trim>
where id = #{item.id} where id = #{item.id}
@ -246,7 +245,7 @@
</delete> </delete>
<delete id="deleteOrderListByOrderIds" parameterType="String"> <delete id="deleteOrderListByOrderIds" parameterType="String">
update order_list set status=1, deleted_at=now() where order_id in update order_list set status=1, deleted_at=now() where order_id in
<foreach item="orderId" collection="array" open="(" separator="," close=")"> <foreach item="orderId" collection="array" open="(" separator="," close=")">
#{orderId} #{orderId}
</foreach> </foreach>