Commit 23a91546dcb9d2fe1a5ec7c5b7097abb4f5ad421

Authored by youxiw2000
2 parents 2c8cea25 c6d0a4d5

Merge branch 'dev' of http://61.169.120.202:8888/youxiw20000/trash into dev

trash-framework/src/main/java/com/trash/framework/config/SecurityConfig.java
... ... @@ -125,6 +125,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
125 125 // .antMatchers("/user/logout").anonymous()
126 126 .antMatchers("/system/post/all").anonymous()
127 127 .antMatchers("/system/user/all").anonymous()
  128 + .antMatchers("/order/queryByCarCode").anonymous()
128 129 // .antMatchers("/workflow/add").anonymous()//测试
129 130 // .antMatchers("/workflow/addtest").anonymous()//测试
130 131 // 除上面外的所有请求全部需要鉴权认证
... ...
trash-garbage/src/main/java/com/trash/garbage/controller/GarbageOrderController.java
... ... @@ -74,6 +74,8 @@ public class GarbageOrderController {
74 74 private final static Integer[] USER_TYP_SELF_COMPANY = {2, 3};
75 75 @Autowired
76 76 private GarAddressService garAddressService;
  77 + @Autowired
  78 + private GarOrderMatchHandlerService garOrderMatchHandlerService;
77 79  
78 80 @PostMapping("/add")
79 81 @Log(title = "创建订单", businessType = BusinessType.INSERT)
... ... @@ -321,7 +323,14 @@ public class GarbageOrderController {
321 323  
322 324 @GetMapping("/webDetail/{id}")
323 325 public Result<OrderDetailVo> queryOrderWebDetail(@PathVariable("id") String id) {
324   - return Result.OK(garOrderService.queryOrderWebDetail(id));
  326 + System.out.println("进入");
  327 + return Result.OK(garOrderService.queryOrderDetail(id));
  328 + }
  329 +
  330 + @GetMapping("/queryByCarCode/{carCode}")
  331 + public Result<String> queryByCarCode(@PathVariable("carCode") String carCode) {
  332 + System.out.println("进入2");
  333 + return Result.OK(garOrderMatchHandlerService.queryOrderNo(carCode));
325 334 }
326 335  
327 336 @GetMapping("/evaluate/detail/{orderId}")
... ...
trash-garbage/src/main/java/com/trash/garbage/mapper/GarOrderMatchHandlerMapper.java
... ... @@ -20,6 +20,8 @@ public interface GarOrderMatchHandlerMapper extends BaseMapper&lt;GarOrderMatchHand
20 20 List<DispatchDriverVo> queryDriverListWithDispatchStatus(@Param("orderId") String orderId, @Param("companyId") String id,@Param("containerVolumees") Set<String> containerVolumees);
21 21  
22 22 List<GarOrderMatchHandler> queryGarOrderMatchHandler(@Param("orderId") String orderId);
  23 +
  24 + String queryOrderNo(@Param("carCode") String carCode);
23 25 }
24 26  
25 27  
... ...
trash-garbage/src/main/java/com/trash/garbage/service/GarOrderMatchHandlerService.java
... ... @@ -16,4 +16,5 @@ public interface GarOrderMatchHandlerService extends IService&lt;GarOrderMatchHandl
16 16  
17 17 List<DispatchDriverVo> queryDriverListWithDispatchStatus(String orderId, String companyId, Set<String> containerVolumees);
18 18 List<GarOrderMatchHandler> queryByOrderId(String orderId);
  19 + String queryOrderNo(String carCode);
19 20 }
... ...
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderMatchHandlerServiceImpl.java
... ... @@ -32,6 +32,11 @@ public class GarOrderMatchHandlerServiceImpl extends ServiceImpl&lt;GarOrderMatchHa
32 32 wrapper.eq(GarOrderMatchHandler::getGarOrderId,orderId);
33 33 return list(wrapper);
34 34 }
  35 +
  36 + @Override
  37 + public String queryOrderNo(String carCode) {
  38 + return baseMapper.queryOrderNo(carCode);
  39 + }
35 40 }
36 41  
37 42  
... ...
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
... ... @@ -397,6 +397,8 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
397 397 }
398 398 }
399 399 // 企业负责人
  400 +
  401 +
400 402 else if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription())) {
401 403 PageHelper.startPage(pageNo, pageSize);
402 404 LambdaQueryWrapper<GarOrder> qw = new LambdaQueryWrapper<>();
... ...
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarTransportationEnterpriseServiceImpl.java
... ... @@ -40,6 +40,7 @@ public class GarTransportationEnterpriseServiceImpl implements GarTransportation
40 40 if (StringUtils.isNotEmpty(name)) {
41 41 params.put("name", name);
42 42 }
  43 + System.out.println(HttpUtil.doGet("/api/gpsservice/cs/companies/simple/list?tag=1", params));
43 44  
44 45 return HttpUtil.doGet("/api/gpsservice/cs/companies/simple/list?tag=1", params);
45 46 }
... ... @@ -69,7 +70,7 @@ public class GarTransportationEnterpriseServiceImpl implements GarTransportation
69 70 transportationEnterprise.setName(jsonObject.getString("name"));
70 71 transportationEnterprise.setAbbreviation(jsonObject.getString("abbreviation"));
71 72 transportationEnterprise.setOfficeAddress(jsonObject.getString("officeAddress"));
72   - transportationEnterprise.setServicePhone(jsonObject.getString("principalPhoneNo"));
  73 + transportationEnterprise.setServicePhone(jsonObject.getString("servicePhone"));
73 74 transportationEnterprise.setLegalRepresentative(jsonObject.getString("principal"));
74 75 transportationEnterprise.setLegalRepresentativePhone(jsonObject.getString("principalPhoneNo"));
75 76 list.add(transportationEnterprise);
... ...
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarUserServiceImpl.java
... ... @@ -113,6 +113,10 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
113 113 @Override
114 114 public LoginVo login(LoginDto loginDto) {
115 115 LoginVo vo = new LoginVo();
  116 + String dropPhone = dropPointInfoService.selectPhoneByDropPointNo(loginDto.getTel());
  117 + if(dropPhone != null && !dropPhone.isEmpty()){
  118 + loginDto.setTel(dropPhone);
  119 + }
116 120  
117 121 if(loginDto.getSignin() == 1){
118 122 QueryWrapper<GarUser> qw = new QueryWrapper<>();
... ... @@ -297,6 +301,7 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
297 301 public String sendVerify(String tel) throws ClientException {
298 302 //随机生成6位数字验证码
299 303 String validateCode = ValidateCodeUtil.generatorCode(4);
  304 + System.out.println(validateCode);
300 305 //给用户发送验证码
301 306 smsUtils.sendMessage(tel, validateCode.toString());
302 307 // 保存redis
... ...
trash-garbage/src/main/resources/mapper/GarOrderMatchHandlerMapper.xml
... ... @@ -69,4 +69,16 @@
69 69 select * from gar_order_match_handler where gar_order_id = #{orderId}
70 70 </select>
71 71  
  72 + <select id="queryOrderNo" resultType="string">
  73 + SELECT
  74 + gar_order_id
  75 + FROM
  76 + gar_order_match_handler
  77 + WHERE
  78 + gar_handler_car_code = #{carCode}
  79 + AND gar_order_handler_status != 3
  80 + ORDER BY gar_create_time DESC
  81 + limit 1
  82 + </select>
  83 +
72 84 </mapper>
... ...
trash-ui/src/router/index.js
... ... @@ -65,7 +65,25 @@ export const constantRoutes = [
65 65 }
66 66 ]
67 67 },
68   -
  68 + {
  69 + path: '/ask',
  70 + component: Layout,
  71 + redirect: '/ask/list',
  72 + name: 'Ask',
  73 + meta: {
  74 + title: '电子联单',
  75 + icon: 'form'
  76 + },
  77 + children: [
  78 + {
  79 + path: 'orderDetail/:orderId',
  80 + name: 'OrderDetail',
  81 + component: () => import('@/views/ask/ask/orderDetail.vue'),
  82 + meta: { title: '订单详情', icon: 'detail' },
  83 + props: true
  84 + }
  85 + ]
  86 + },
69 87 {
70 88 path: '/user',
71 89 component: Layout,
... ...
trash-ui/src/views/ask/ask/orderDetail.vue 0 → 100644
  1 +
  2 +<template>
  3 + <div class="order-detail-container">
  4 + <div class="header">
  5 + <h1>装修垃圾收运处电子联单</h1>
  6 + </div>
  7 +
  8 + <div class="order-info">
  9 + <div class="order-number">
  10 + <span>联单编号:<span class="highlight">{{ form.garOrderNumber }}</span></span>
  11 + </div>
  12 +
  13 + <table class="detail-table">
  14 + <!-- 投放端信息 -->
  15 + <tr>
  16 + <td colspan="4" class="section-header">
  17 + 投放端信息
  18 + </td>
  19 + </tr>
  20 + <tr>
  21 + <td class="label">投放点编号</td>
  22 + <td>{{ form.dropPointId || '-' }}</td>
  23 + <td class="label">运距</td>
  24 + <td>{{ form.transportDistance || '-' }}</td>
  25 + </tr>
  26 + <tr>
  27 + <td class="label">投放点名称</td>
  28 + <td>{{ form.garOrderName || '-' }}</td>
  29 + <td class="label">订单时间</td>
  30 + <td>{{ form.garOrderTime || '-' }}</td>
  31 + </tr>
  32 + <tr>
  33 + <td class="label">联系电话</td>
  34 + <td>{{ form.garOrderPhone || '-' }}</td>
  35 + <td class="label">车次</td>
  36 + <td v-if="form.dropCarNum!==0">{{ form.dropCarNum }}/{{ dropCarNum }}</td>
  37 + <td v-else>-</td>
  38 + </tr>
  39 + <tr>
  40 + <td class="label">投放地址</td>
  41 + <td colspan="3">{{ form.dropAddress || '-' }}</td>
  42 + </tr>
  43 +
  44 + <!-- 运输端信息 -->
  45 + <tr>
  46 + <td colspan="4" class="section-header">
  47 + 运输端信息
  48 + </td>
  49 + </tr>
  50 + <tr>
  51 + <td class="label">运输单位</td>
  52 + <td>{{ form.garOrderHandlerCompanyName || '-' }}</td>
  53 + <td class="label">运输时间</td>
  54 + <td>{{ form.garCreateTime || '-' }}</td>
  55 + </tr>
  56 + <tr>
  57 + <td class="label">车牌号</td>
  58 + <td>{{ form.garCarCode || '-' }}</td>
  59 + <td class="label">驾驶员</td>
  60 + <td>{{ form.garOrderHandlerName || '-' }}</td>
  61 + </tr>
  62 +
  63 + <!-- 处置端信息 -->
  64 + <tr>
  65 + <td colspan="4" class="section-header">
  66 + 处置端信息
  67 + </td>
  68 + </tr>
  69 + <tr>
  70 + <td class="label">处置场名称</td>
  71 + <td>{{ form.disposalSiteName || '-' }}</td>
  72 + <td class="label">接收时间</td>
  73 + <td>{{ form.garUpdateTime || '-' }}</td>
  74 + </tr>
  75 + <tr>
  76 + <td class="label">接收车牌</td>
  77 + <td>{{ form.garHandlerCarCode || '-' }}</td>
  78 + <td class="label">载重(吨)</td>
  79 + <td>{{ form.garCarryingWeight || '-' }}</td>
  80 + </tr>
  81 +
  82 + <!-- 备注 -->
  83 + <tr>
  84 + <td class="label">备注</td>
  85 + <td colspan="3">{{ form.garRemark || '-' }}</td>
  86 + </tr>
  87 + </table>
  88 + </div>
  89 +
  90 + <div class="actions">
  91 + <el-button type="primary" @click="handlePrint">打印</el-button>
  92 + <el-button type="primary" @click="exportToPDF">导出PDF</el-button>
  93 + </div>
  94 + </div>
  95 +</template>
  96 +
  97 +<script>import { getAsk } from "@/api/ask/ask";
  98 +import html2pdf from 'html2pdf.js'
  99 +
  100 +export default {
  101 + name: "OrderDetail",
  102 + data() {
  103 + return {
  104 + // 表单参数
  105 + form: {},
  106 + dropCarNum: 0
  107 + };
  108 + },
  109 + created() {
  110 + const orderId = this.$route.params.orderId || this.$route.query.orderId;
  111 + if (orderId) {
  112 + this.getOrderDetail(orderId);
  113 + } else {
  114 + this.$message.error("缺少订单ID参数");
  115 + }
  116 + },
  117 + methods: {
  118 + /** 获取订单详情 */
  119 + getOrderDetail(orderId) {
  120 + getAsk(orderId).then(response => {
  121 + this.form = response.data;
  122 + }).catch(error => {
  123 + this.$message.error("获取订单详情失败: " + error.message);
  124 + });
  125 + },
  126 +
  127 + /** 导出为PDF */
  128 + exportToPDF() {
  129 + const element = document.querySelector('.order-detail-container');
  130 +
  131 + const opt = {
  132 + margin: 10,
  133 + filename: `装修垃圾收运处电子联单_${this.form.garOrderNumber}.pdf`,
  134 + image: { type: 'jpeg', quality: 0.98 },
  135 + html2canvas: { scale: 2 },
  136 + jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
  137 + };
  138 +
  139 + html2pdf().set(opt).from(element).save();
  140 + },
  141 +
  142 + /** 打印 */
  143 + handlePrint() {
  144 + window.print();
  145 + }
  146 + }
  147 +};
  148 +</script>
  149 +
  150 +<style lang="scss" scoped>.order-detail-container {
  151 + max-width: 1000px;
  152 + margin: 0 auto;
  153 + padding: 20px;
  154 + background: #fff;
  155 +
  156 + .header {
  157 + text-align: center;
  158 + margin-bottom: 20px;
  159 +
  160 + h1 {
  161 + font-size: 24px;
  162 + color: #333;
  163 + margin: 0;
  164 + }
  165 + }
  166 +
  167 + .order-info {
  168 + .order-number {
  169 + font-size: 18px;
  170 + margin-bottom: 20px;
  171 +
  172 + .highlight {
  173 + color: red;
  174 + font-weight: bold;
  175 + }
  176 + }
  177 +
  178 + .detail-table {
  179 + width: 100%;
  180 + border-collapse: collapse;
  181 + font-size: 14px;
  182 + text-align: left;
  183 + margin-bottom: 20px;
  184 +
  185 + .section-header {
  186 + background: #f5f7fa;
  187 + font-weight: 600;
  188 + padding: 10px;
  189 + }
  190 +
  191 + td {
  192 + border: 1px solid #333;
  193 + padding: 10px;
  194 +
  195 + &.label {
  196 + background-color: #f9f9f9;
  197 + font-weight: 500;
  198 + width: 20%;
  199 + }
  200 + }
  201 + }
  202 + }
  203 +
  204 + .actions {
  205 + text-align: center;
  206 +
  207 + .el-button {
  208 + margin: 0 10px;
  209 + }
  210 + }
  211 +}
  212 +
  213 +@media print {
  214 + .actions {
  215 + display: none;
  216 + }
  217 +}
  218 +</style>
... ...
trash-unit/src/main/java/com/trash/dropPointInfo/mapper/DropPointInfoMapper.java
... ... @@ -19,6 +19,9 @@ public interface DropPointInfoMapper
19 19 */
20 20 DropPointInfo selectDropPointInfoById(Long id);
21 21  
  22 +
  23 + String selectPhoneByDropPointNo(String dropPointNo);
  24 +
22 25 /**
23 26 * 查询投放点信息管理列表
24 27 *
... ...
trash-unit/src/main/java/com/trash/dropPointInfo/service/IDropPointInfoService.java
... ... @@ -19,6 +19,8 @@ public interface IDropPointInfoService
19 19 */
20 20 DropPointInfo selectDropPointInfoById(Long id);
21 21  
  22 + String selectPhoneByDropPointNo(String dropPointNo);
  23 +
22 24 /**
23 25 * 查询投放点信息管理列表
24 26 *
... ...
trash-unit/src/main/java/com/trash/dropPointInfo/service/impl/DropPointInfoServiceImpl.java
... ... @@ -39,6 +39,11 @@ public class DropPointInfoServiceImpl implements IDropPointInfoService
39 39 return dropPointInfoMapper.selectDropPointInfoById(id);
40 40 }
41 41  
  42 + @Override
  43 + public String selectPhoneByDropPointNo(String dropPointNo) {
  44 + return dropPointInfoMapper.selectPhoneByDropPointNo(dropPointNo);
  45 + }
  46 +
42 47 /**
43 48 * 查询投放点信息管理列表
44 49 *
... ...
trash-unit/src/main/resources/mapper/unit/DropPointInfoMapper.xml
... ... @@ -66,6 +66,10 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
66 66 where custodian_phone = #{custodianPhone}
67 67 </select>
68 68  
  69 + <select id="selectPhoneByDropPointNo" parameterType="String">
  70 + select custodian_phone from drop_point_info where drop_point_no = #{dropPointNo}
  71 + </select>
  72 +
69 73 <select id="selectDropPointInfoById" parameterType="Long"
70 74 resultMap="DropPointInfoResult">
71 75 <include refid="selectDropPointInfoVo" />
... ...